一种微服务开发工具制造技术

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

A microservice development tool

【技术实现步骤摘要】
一种微服务开发工具
本专利技术涉及一种开发工具,具体涉及一种微服务开发工具。
技术介绍
随着现代软件应用系统功能越来越复杂,所处理的业务变化越来越快,越来越灵活,软件应用架构也进入新的一代架构-微服务架构。传统的单体架构,当系统功能变得复杂时,整个系统的复杂度呈指数增长,高度耦合使得系统变得笨重,一个简单的业务变更影响整个系统的可用性。而后发展起来的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框架,对系统中所有的定时任务进行统一管理。避免定时任务重复执行引起业务异常,还可以对耗时的定时任务进行分片处理,将划分的分片分摊到不到的节点上执行。<本文档来自技高网...

【技术保护点】
1.一种微服务开发工具,其特征在于:包括网关层、服务聚合层、若干个业务服务层、基础组件层;/n所述网关层与所述服务聚合层相连,通过所述网关层实现用户的身份认证、权限校验及流量控制;/n所述服务聚合层与所述若干个业务服务层连接,通过所述服务聚合层对若干个业务服务层进行编排组合,并进行分布式事务的控制,保证数据的一致性;/n所述若干个业务服务层与所述基础组件层相连,所述业务服务层直接操作业务数据,完成业务的具体功能。/n

【技术特征摘要】
1.一种微服务开发工具,其特征在于:包括网关层、服务聚合层、若干个业务服务层、基础组件层;
所述网关层与所述服务聚合层相连,通过所述网关层实现用户的身份认证、权限校验及流量控制;
所述服务聚合层与所述若干个业务服务层连接,通过所述服务聚合层对若干个业务服务层进行编排组合,并进行分布式事务的控制,保证数据的一致性;
所述若干个业务服务层与所述基础组件层相连,所述业务服务层直接操作业务数据,完成业务的具体功能。


2.根据权利要求1所述的一种微服务开发工具,其特征在于:所述网关层采用Zuul组件,通过Zuul组件将前端用户的请求转发至服务聚合层。


3.根据权利要求1所述的一种微服务开发工具,其特征在于:所述服务聚合层通过服务聚合APP完成其功能。


4.根据权利要求1所述的一种微服务开发工具,其特征在于:每一个业务服务层均包含有若干种业务服务,并需要进行分布式事务的控制。


5.根据权利要求1所述的一种微服务开发工具,其特征在于:所述基础组件层包括数据库访问组件、Redis缓存访问组件、文件操作组件、分布式作业组件和分布式事务组件。


6.根据权利要求1所述的一种微服务开发工具,其特...

【专利技术属性】
技术研发人员:王洋
申请(专利权)人:盈佳云创科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1