CN111045648B - 一种微服务开发装置 - Google Patents

一种微服务开发装置 Download PDF

Info

Publication number
CN111045648B
CN111045648B CN201911266727.3A CN201911266727A CN111045648B CN 111045648 B CN111045648 B CN 111045648B CN 201911266727 A CN201911266727 A CN 201911266727A CN 111045648 B CN111045648 B CN 111045648B
Authority
CN
China
Prior art keywords
layer
service
component
business
gateway
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911266727.3A
Other languages
English (en)
Other versions
CN111045648A (zh
Inventor
王洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yingjia Yunchuang Technology Chengdu Co ltd
Original Assignee
Yingjia Yunchuang Technology Shenzhen Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yingjia Yunchuang Technology Shenzhen Co ltd filed Critical Yingjia Yunchuang Technology Shenzhen Co ltd
Priority to CN201911266727.3A priority Critical patent/CN111045648B/zh
Publication of CN111045648A publication Critical patent/CN111045648A/zh
Application granted granted Critical
Publication of CN111045648B publication Critical patent/CN111045648B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种微服务开发装置,包括网关层、服务聚合层、若干个业务服务层、基础组件层;所述网关层与所述服务聚合层相连,通过所述网关层实现用户的身份认证、权限校验及流量控制;所述服务聚合层与所述若干个业务服务层连接,通过所述服务聚合层对若干个业务服务层进行编排组合,并进行分布式事务的控制,保证数据的一致性;所述若干个业务服务层与所述基础组件层相连,所述业务服务层直接操作业务数据,完成业务的具体功能。本发明基于SpringCloud,替换优化了其中的部分组件,并提供底层的公共组件支持,是一款完善的,灵活的,有基础组件支撑可直接开发的服务开发工具。

Description

一种微服务开发装置
技术领域
本发明涉及一种开发工具,具体涉及一种微服务开发装置。
背景技术
随着现代软件应用系统功能越来越复杂,所处理的业务变化越来越快,越来越灵活,软件应用架构也进入新的一代架构-微服务架构。传统的单体架构,当系统功能变得复杂时,整个系统的复杂度呈指数增长,高度耦合使得系统变得笨重,一个简单的业务变更影响整个系统的可用性。而后发展起来的SOA架构,跟微服务架构有一定的相似性,它也强调松耦合。但是微服务架构,强调将业务系统彻底的服务化,将业务系统分成多个简单的、资源独立的、低耦合的服务。这样的系统灵活,容易扩展。
针对软件的微服务架构,发展出了多种不同的开发方法,当前主要有Dubbo和SpringCloud。
采用Dubbo的开发方法,由于Dubbo本身仅实现了服务的治理,要实现微服务架构下的核心构件,需要通过扩展Dubbo提供的各种过滤器Filter,实现起来开发成功和技术难度较高。
SpringCloud,相对于Dubbo,提供了比较完善的一整套的微服务的组件。但是其部分组件在实际业务系统中使用限制太大,如配置中心只能基于git,灵活性较差。
不管dubbo还是SpringCloud,都缺乏底层公共组件的支撑,如数据库访问、文件操作、分布式事务问题等。
发明内容
本发明的目的在于克服现有技术的不足,提供一种有基础组件支撑,灵活性高的微服务开发装置。
本发明的技术方案如下:
一种微服务开发装置,包括网关层、服务聚合层、若干个业务服务层、基础组件层;
所述网关层与所述服务聚合层相连,通过所述网关层实现用户的身份认证、权限校验及流量控制;
所述服务聚合层与所述若干个业务服务层连接,通过所述服务聚合层对若干个业务服务层进行编排组合,并进行分布式事务的控制,保证数据的一致性;
所述若干个业务服务层与所述基础组件层相连,所述业务服务层直接操作业务数据,完成业务的具体功能。
上述方案中,所述网关层采用Zuul组件,通过Zuul组件将前端用户的请求转发至服务聚合层。
上述方案中,所述服务聚合层通过服务聚合APP完成其功能。
上述方案中,每一个业务服务层均包含有若干种业务服务,并需要进行分布式事务的控制。
上述方案中,所述基础组件层包括数据库访问组件、Redis缓存访问组件、文件操作组件、分布式作业组件和分布式事务组件。
上述方案中,还包括治理和配置层,所述治理和配置层分别与所述网关层、服务聚合层、若干个业务服务层相连;
该治理和配置层采用Eureka组件,使得业务服务层、服务聚合层都注册到Eureka组件中,网关层或服务聚合层从Eureka组件中获取服务的具体地址;
同时采用开源框架Apollo,所有配置根据不同环境保存在数据中,变更时实时通知业务服务层。
上述方案中,还包括监控和保护层,所述监控和保护层分别与所述网关层、服务聚合层、若干个业务服务层相连,该监控和保护层包括链路追踪组件、熔断保护组件、日志收集组件和监控告警组件;
所述链路追踪组件采用开源框架Skywalking,对从网关层到服务聚合层到业务服务层到基础组件层的调用,通过一个全局的ID进行关联;
所述熔断保护组件采用hystrix,使系统的部分故障快速隔离,而不至于引起整个系统的崩溃;
所述日志收集组件采用ELK,将服务聚合层、业务服务层的日志收集起来统一存储和显示;
所述监控告警组件基于ELK开发,在服务聚合层和业务服务层中,当系统出现异常需要告警时,系统输出一串特殊的字符串到日志系统中,在ELK收集到该日志时,将该日志转发至外部的告警平台触发告警。
相对于现有技术,本发明的有益效果在于:本发明基于SpringCloud,替换优化了其中的部分组件,并提供底层的公共组件支持,是一款完善的,灵活的,有基础组件支撑可直接开发的服务开发工具。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种微服务开发装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例
请参阅图1,本实施例提供一种微服务开发装置,包括网关层、服务聚合层、若干个业务服务层、基础组件层、治理和配置层、监控和保护层,其中:
所述网关层与所述服务聚合层相连,采用SpringCloud的Zuul组件,通过Zuul组件将前端用户的请求转发至服务聚合层。在网关层,可以实现用户的身份认证、权限校验、流量控制等。
所述服务聚合层与所述若干个业务服务层连接,服务聚合层,是对若干个业务服务层的组合,每一个业务服务层,完成一个单独的简单的业务功能。在该服务聚合层,需要对若干个业务服务层进行编排组合,并进行分布式事务的控制,以保证数据的一致性。在该服务聚合层,不直接操作业务数据。该服务聚合层通过服务聚合APP完成其功能。
所述若干个业务服务层与所述基础组件层相连,所述业务服务层直接操作业务数据,完成业务的具体功能。同时,每一个业务服务层均包含有若干种业务服务,并需要进行分布式事务的控制。
所述基础组件层包括数据库访问组件、Redis缓存访问组件、文件操作组件、分布式作业组件和分布式事务组件,具体的:
数据库访问组件支持关系型数据库。该组件可以自动生成数据表对应的实体类、单表增删改查操作对应的查询语句和方法,以及支持分页查询。更重要的是,该组件支持更换数据库连接而无需重启,可以实现无感切换数据库。其主要的实现原理为:当业务微服务接收到配置中心的通知,数据库配置发生变更时,以新的数据库配置初始化一个数据库连接池,并将其置为默认的连接池,当有访问数据库请求时,从默认的连接池中获取新的连接。旧的数据库连接池在被替换后,在所有的连接都释放后,会被异步销毁回收资源。这样就完成了新的连接池替换和旧的连接池回收。
Redis缓存访问组件,支持不同形式的Redis部署方式,包括单机、哨兵(sentinel)和集群(Cluster)。该组件会自己检测配置中心中Redis的地址连接方式,自动选择不同部署方式进行连接。另外该组件还支持将Redis加入事务控制,当在数据库的事务中进行Redis操作时,Redis的操作将会变为异步操作,数据库的操作完成后根据其结果进行Redis的操作。
分布式作业组件,采用开源的XXL-JOB框架,对系统中所有的定时任务进行统一管理。避免定时任务重复执行引起业务异常,还可以对耗时的定时任务进行分片处理,将划分的分片分摊到不到的节点上执行。
分布式事务组件,基于开源的LCN框架进行开发,支持关系型数据库(LCN)和其它数据源(TCC)。在使用关系型数据库的业务微服务中,采用LCN模式,代理数据库连接,直到接到事务管理器通知时才提交或者回滚事务。使用非关系型数据库的业务微服务采用TCC模式,分别实现try、commit、cancel逻辑,在事务管理器通知时根据不同的通知类型执行不同的逻辑操作。在聚合服务中,聚合服务只是编排组合业务微服务,不操作具体的数据,其使用自定义的Cockroach模式:启动一个事务组,通知事务管理器,并通知其他业务微服务加入;当接收到事务管理器异常通知时,直接结束事务。
所述治理和配置层分别与所述网关层、服务聚合层、若干个业务服务层相连;该治理和配置层采用SpringCloud的注册中心Eureka组件,所有业务服务层、服务聚合层都注册到Eureka组件中,网关层或服务聚合层从Eureka组件中获取服务的具体地址;配置中心采用携程的开源框架Apollo,所有配置根据不同环境保存在数据中,变更时实时通知业务服务层。
所述监控和保护层分别与所述网关层、服务聚合层、若干个业务服务层相连,该监控和保护层包括链路追踪组件、熔断保护组件、日志收集组件和监控告警组件,具体的:
所述链路追踪组件采用Apache的开源框架Skywalking,对从网关层到服务聚合层到业务服务层到基础组件层的调用,通过一个全局的ID进行关联。
所述熔断保护组件采用SpringCloud的hystrix,使系统的部分故障快速隔离,而不至于引起整个系统的崩溃。
所述日志收集组件采用ELK(Elasticsearch、Logstash、Kibana),将服务聚合层、业务服务层的日志收集起来统一存储和显示。
所述监控告警组件基于ELK开发,在服务聚合层和业务服务层中,当系统出现异常需要告警时,系统输出一串特殊的字符串到日志系统中,在ELK收集到该日志时,将该日志转发至外部的告警平台触发告警。这样的告警方式在业务系统中无侵入性,对性能几乎没有影响。
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种微服务开发装置,其特征在于:包括网关层、服务聚合层、若干个业务服务层、基础组件层;
所述网关层与所述服务聚合层相连,通过所述网关层实现用户的身份认证、权限校验及流量控制;
所述服务聚合层与所述若干个业务服务层连接,通过所述服务聚合层对若干个业务服务层进行编排组合,并进行分布式事务的控制,保证数据的一致性;
所述若干个业务服务层与所述基础组件层相连,所述业务服务层直接操作业务数据,完成业务的具体功能;
所述服务聚合层通过服务聚合APP完成其功能;
还包括监控和保护层,所述监控和保护层分别与所述网关层、服务聚合层、若干个业务服务层相连,该监控和保护层包括链路追踪组件、熔断保护组件、日志收集组件和监控告警组件;
所述链路追踪组件采用开源框架Skywalking,对从网关层到服务聚合层到业务服务层到基础组件层的调用,通过一个全局的ID进行关联;
所述熔断保护组件采用hystrix,使系统的部分故障快速隔离,而不至于引起整个系统的崩溃;
所述日志收集组件采用ELK,将服务聚合层、业务服务层的日志收集起来统一存储和显示;
所述监控告警组件基于ELK开发,在服务聚合层和业务服务层中,当系统出现异常需要告警时,系统输出一串特殊的字符串到日志系统中,在ELK收集到该日志时,将该日志转发至外部的告警平台触发告警。
2.根据权利要求1所述的一种微服务开发装置,其特征在于:所述网关层采用Zuul组件,通过Zuul组件将前端用户的请求转发至服务聚合层。
3.根据权利要求1所述的一种微服务开发装置,其特征在于:每一个业务服务层均包含有若干种业务服务,并需要进行分布式事务的控制。
4.根据权利要求1所述的一种微服务开发装置,其特征在于:所述基础组件层包括数据库访问组件、Redis缓存访问组件、文件操作组件、分布式作业组件和分布式事务组件。
5.根据权利要求1所述的一种微服务开发装置,其特征在于:还包括治理和配置层,所述治理和配置层分别与所述网关层、服务聚合层、若干个业务服务层相连;
该治理和配置层采用Eureka组件,使得业务服务层、服务聚合层都注册到Eureka组件中,网关层或服务聚合层从Eureka组件中获取服务的具体地址;
同时采用开源框架Apollo,所有配置根据不同环境保存在数据中,变更时实时通知业务服务层。
CN201911266727.3A 2019-12-11 2019-12-11 一种微服务开发装置 Active CN111045648B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911266727.3A CN111045648B (zh) 2019-12-11 2019-12-11 一种微服务开发装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911266727.3A CN111045648B (zh) 2019-12-11 2019-12-11 一种微服务开发装置

Publications (2)

Publication Number Publication Date
CN111045648A CN111045648A (zh) 2020-04-21
CN111045648B true CN111045648B (zh) 2024-03-15

Family

ID=70235628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911266727.3A Active CN111045648B (zh) 2019-12-11 2019-12-11 一种微服务开发装置

Country Status (1)

Country Link
CN (1) CN111045648B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111818182B (zh) * 2020-08-31 2021-07-13 四川新网银行股份有限公司 一种基于Spring cloud gateway的微服务编排和数据聚合的方法
CN112486466B (zh) * 2020-12-11 2022-02-08 光大兴陇信托有限责任公司 一种基于微服务架构的快速通用基础框架实现方法
CN112765117A (zh) * 2021-01-26 2021-05-07 中国船级社 基于微服务架构的工业互联网标识解析系统
CN113037831B (zh) * 2021-03-04 2023-04-28 中国农业银行股份有限公司 一种服务网关报文处理方法及装置
CN112817946A (zh) * 2021-04-19 2021-05-18 中材邦业(杭州)智能技术有限公司 一种基于分层微服务的智能开发方法和系统
CN114615251B (zh) * 2022-03-24 2024-05-03 中电科思仪科技股份有限公司 一种实现采算分离的信号测试仪器云控制系统及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168746A (zh) * 2017-05-27 2017-09-15 北京中电普华信息技术有限公司 一种微服务生成方法及装置
CN107911430A (zh) * 2017-11-06 2018-04-13 上海电机学院 一种微服务基础设施装置
CN108446111A (zh) * 2018-03-26 2018-08-24 国家电网公司客户服务中心 一种基于Spring cloud的微服务构建方法
CN109814909A (zh) * 2019-01-18 2019-05-28 南京绿新能源研究院有限公司 基于Spring cloud微服务架构云化SCADA系统的方法
CN110134374A (zh) * 2019-05-10 2019-08-16 南京绿新能源研究院有限公司 基于Spring cloud微服务架构云化SCADA系统的方法
CN110210890A (zh) * 2019-04-26 2019-09-06 上海集勇信息科技有限公司 一种基于Spring Cloud的活动分享系统及实现方法
CN110535902A (zh) * 2019-07-16 2019-12-03 平安普惠企业管理有限公司 基于微服务实现监控智能化的处理方法及电子装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10129078B2 (en) * 2014-10-30 2018-11-13 Equinix, Inc. Orchestration engine for real-time configuration and management of interconnections within a cloud-based services exchange
US10678512B2 (en) * 2016-10-25 2020-06-09 Red Hat, Inc. Enabling local development of microservices for hosting in remote orchestration engines

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168746A (zh) * 2017-05-27 2017-09-15 北京中电普华信息技术有限公司 一种微服务生成方法及装置
CN107911430A (zh) * 2017-11-06 2018-04-13 上海电机学院 一种微服务基础设施装置
CN108446111A (zh) * 2018-03-26 2018-08-24 国家电网公司客户服务中心 一种基于Spring cloud的微服务构建方法
CN109814909A (zh) * 2019-01-18 2019-05-28 南京绿新能源研究院有限公司 基于Spring cloud微服务架构云化SCADA系统的方法
CN110210890A (zh) * 2019-04-26 2019-09-06 上海集勇信息科技有限公司 一种基于Spring Cloud的活动分享系统及实现方法
CN110134374A (zh) * 2019-05-10 2019-08-16 南京绿新能源研究院有限公司 基于Spring cloud微服务架构云化SCADA系统的方法
CN110535902A (zh) * 2019-07-16 2019-12-03 平安普惠企业管理有限公司 基于微服务实现监控智能化的处理方法及电子装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
芮烨 等.基于微服务架构的分布式开发平台.《信息技术与标准化》.2018,(第7期),第41-44页. *

Also Published As

Publication number Publication date
CN111045648A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
CN111045648B (zh) 一种微服务开发装置
US10951491B2 (en) Automatic microservice problem detection in enterprise applications
CN104272247B (zh) 元数据驱动的撤销方法和系统
US6594779B1 (en) Method, system and program products for managing the checkpointing/restarting of resources of a computing environment
US20110289356A1 (en) Methods and systems for testing methods in a multi-tenant database environment
US10713224B2 (en) Implementing a continuity plan generated using solution data modeling based on predicted future event simulation testing
CN106445644A (zh) 基于改进的一阶段提交的分布式事务的处理方法和装置
CN111382146A (zh) 数据存储控制方法、装置、设备以及存储介质
CN111309550A (zh) 应用程序的数据采集方法、系统、设备和存储介质
CN110188103A (zh) 数据对账方法、装置、设备和存储介质
CN103890736A (zh) 灾难恢复期间的消息对账
CN101373450B (zh) 处理cpu异常的方法及系统
US11700255B2 (en) Feedback framework
CN109445937B (zh) 一种组件化编程及无缝执行方法
EP1881447A1 (en) Software release management
KR20220074367A (ko) 서버리스 개발 지원 플랫폼 및 방법
CN108369549B (zh) 版本化记录管理计算系统、方法和计算机可读介质
CN106600010A (zh) 基于场景自适应的智能化应急处理信息系统
KR20170122874A (ko) 데이터 분산 서비스 기반의 응용 시스템의 통합 로그 관리 장치
US9031998B2 (en) Analytics enablement objects
CN114064586A (zh) 操作日志生成方法、故障查询方法及装置
JP7246301B2 (ja) プログラム開発支援システム及びプログラム開発支援方法
CN113127036A (zh) 软件开发系统、代码的持续集成方法、装置和介质
US20200117567A1 (en) Dump analysis generation
KR20090068938A (ko) 분산된 엔지니어링 자원의 통합 및 실행을 위한 엔지니어링프레임워크 및 그를 이용한 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee after: Yingjia Yunchuang Technology (Chengdu) Co.,Ltd.

Country or region after: Zhong Guo

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee before: Yingjia yunchuang Technology (Shenzhen) Co.,Ltd.

Country or region before: Zhong Guo

CP03 Change of name, title or address