CN111045648A - 一种微服务开发工具 - Google Patents

一种微服务开发工具 Download PDF

Info

Publication number
CN111045648A
CN111045648A CN201911266727.3A CN201911266727A CN111045648A CN 111045648 A CN111045648 A CN 111045648A CN 201911266727 A CN201911266727 A CN 201911266727A CN 111045648 A CN111045648 A CN 111045648A
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.)
Granted
Application number
CN201911266727.3A
Other languages
English (en)
Other versions
CN111045648B (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

Images

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

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 (7)

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

Cited By (6)

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

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160124742A1 (en) * 2014-10-30 2016-05-05 Equinix, Inc. Microservice-based application development framework
CN107168746A (zh) * 2017-05-27 2017-09-15 北京中电普华信息技术有限公司 一种微服务生成方法及装置
CN107911430A (zh) * 2017-11-06 2018-04-13 上海电机学院 一种微服务基础设施装置
US20180113680A1 (en) * 2016-10-25 2018-04-26 Red Hat, Inc. Enabling local development of microservices for hosting in remote orchestration engines
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 平安普惠企业管理有限公司 基于微服务实现监控智能化的处理方法及电子装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160124742A1 (en) * 2014-10-30 2016-05-05 Equinix, Inc. Microservice-based application development framework
US20180113680A1 (en) * 2016-10-25 2018-04-26 Red Hat, Inc. Enabling local development of microservices for hosting in remote orchestration engines
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
芮烨 等: "基于微服务架构的分布式开发平台", no. 7, pages 41 - 44 *

Cited By (7)

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

Also Published As

Publication number Publication date
CN111045648B (zh) 2024-03-15

Similar Documents

Publication Publication Date Title
CN111045648A (zh) 一种微服务开发工具
CN107787490B (zh) 分布式数据库网格中的直接连接功能
CN112099918A (zh) 容器化环境中的集群的实时迁移
US20050050106A1 (en) System and method for synchronizing distributed buffers when committing data to a database
CN109144994A (zh) 索引更新方法、系统及相关装置
JP2002528966A (ja) インテリジェントネットワークに分配されたサービスノード中のサービスモジュールを展開する方法および装置
WO2012020405A1 (en) System and method for determining a topology of at least one application in a computerized organization
CN106445644A (zh) 基于改进的一阶段提交的分布式事务的处理方法和装置
CN105653425A (zh) 基于复杂事件处理引擎的监控系统
US7979867B2 (en) Managing a device in a distributed file system, using plug and play
CN104050276A (zh) 一种分布式数据库的缓存处理方法及系统
US20220413937A1 (en) Node management method, device and apparatus, storage medium, and system
CN110399107B (zh) 日志打印方法、装置、存储介质及设备
CN105183591A (zh) 一种高可用集群的实现方法及系统
US9766984B2 (en) N to M host system copy
US20210160241A1 (en) System And Method For Identification Of Information Assets
CN112035062A (zh) 云计算的本地存储的迁移方法、计算机设备及存储介质
CN114610537A (zh) 版本化记录管理计算系统、方法和计算机可读介质
CN107291575A (zh) 一种数据中心故障时的处理方法和设备
US20230074868A1 (en) Techniques for scalable distributed system backups
CN115373757A (zh) 一种Promethues分片模式下集群监控数据缺失的解决方法和装置
US11698911B2 (en) System and methods for performing updated query requests in a system of multiple database engine
CN112068953B (zh) 一种云资源精细化管理溯源系统及方法
CN114817012A (zh) 一种自动化测试数据管理方法及系统
CN114153660A (zh) 一种数据库备份方法、装置、服务器及介质

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
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