一种异构形态的多实例多数据源微服务系统及方法与流程

文档序号:33712620发布日期:2023-04-01 00:32阅读:49来源:国知局
一种异构形态的多实例多数据源微服务系统及方法与流程

1.本发明涉及数据信息处理技术领域,具体的说是一种异构形态的多实例多数据源微服务系统及方法。


背景技术:

2.面向中小微企业的数字化转型实施方案常常需要应对众多的个性化需求,不同的企业由于行业背景、管理方法、企业组织结构、业务流程等各方面的差异性,对企业的信息化系统提出了五花八门的要求,这些要求的实现对信息化系统的建设带来极高的成本,这些成本是中小微企业难以承担的,从而阻碍了中小微企业的数字化转型成功。
3.目前数字化转型的主流技术是基于微服务架构的云原生技术,该技术可以将不同的业务应用分拆成不同的微服务,从而增强了业务的重用性,降低了开发成本。但是该技术架构并不能较好地应对中小微企业形式多样的业务需求,同时由于微服务实例数量的大增,系统的复杂度也随之增加,系统部署和维护的成本反而更高,这个成本也是中小微企业难以承受的。
4.如图1所示,为一种现有技术方案,该方案基于本地部署的技术框架采用了企业单独部署的方式,在本地或者公有云平台构建一套为自己量身定做的数字化系统,这样的系统往往又非常昂贵,是中小微企业承担不了的。该方案中,a企业与b企业完全没有关系,其系统之间也各自屏蔽,各自承担自身的数字化建设成本,由企业自主开发或者由第三方承包商来开发不同的系统给各自使用,其好处就是可以做到系统的完全掌握,缺点也是明显的,就是单套系统的构建成本都及其昂贵,该费用无法分摊。实际的情况是大量的中小微企业无法支付如此昂贵的信息化系统,数字化转型也就无从谈起,成了空中楼阁。
5.如图2所示,为另一种现有技术方案,基于云技术框架的方案是使用多个同质实例来承接所有用户的业务需求,在数据库中对用户页面的个别元素进行个性化,无法做到业务流程的个性化。该方案中,a企业用户或者b企业用由系统的负载均衡算法路由到相同的微服务实例,在微服务实例中不保存任何企业信息的状态,微服务实例ⅰ和微服务实例ⅱ以及微服务实例ⅲ毫无区别,由实例管理平台随机调度,该方案的好处就是可以做到系统的高并发处理,可以快速响应大量的同质请求,缺点就是a企业用户和b企业用户的请求必须是同质的,每个微服务的实例都能够响应和处理。然而在实际的中小微企业的应用中,中小微企业往往没有大量的同质请求,不存在数据的高并发问题,与此相反的是,中小微企业进行数字化时,由于企业的行业背景、业务流程、组织架构的不同,a企业和b企业往往会提出不同的业务需求,此时现有技术框架无法实现此类的业务需求。
6.为此,本发明提出了一种异构形态的多实例多数据源微服务系统及方法。


技术实现要素:

7.现为了解决背景技术中现有技术存在的不足,本发明提出了一种异构形态的多实例多数据源微服务系统及方法。
8.本发明所要解决的技术问题采用以下技术方案来实现:
9.一种异构形态的多实例多数据源微服务系统,基于不同的企业用户,包括:
10.业务消息路由平台,由消息接收器、消息前置处理模块和消息路由模块组成,根据用户的业务情况进行业务逻辑处理;
11.业务微服务调度模块,用于获取业务消息路由平台的业务逻辑处理后的信息,调用业务微服务实例或者共性微服务实例;
12.数据库算法调度平台,根据业务微服务调度模块发过来的请求数据,分配企业专属的数据库给到业务微服务调度模块;
13.由业务微服务调度模块将企业专属的数据库给到业务消息路由平台,并将业务处理结果返回给企业用户,完成业务逻辑。
14.作为本发明的进一步改进,对于业务微服务调度模块,在微服务的注册中心中,添加微服务实例的动态生成功能、生成企业微服务实例管理表,完成微服务实例的全生命周期管理。
15.作为本发明的进一步改进,所述数据库算法调度平台包括数据库注册机、数据库请求接收器、sql语句生成器和数据库分配模块。
16.作为本发明的进一步改进,所述的业务微服务实例或者共性微服务实例可以设置为多组,确保系统的可靠性。
17.作为本发明的进一步改进,所述业务消息路由平台基于业务路由算法,接受用户的请求,进行合法性校验;
18.作为本发明的进一步改进,所述的业务路由算法包含业务消息的合法性检查、防止ddos攻击、流量分流技术、业务分配算法类内容;
19.所述合法性检查包括企业id的存在性检查、用户信息的真实性检查;
20.所述业务微服务调度模块接受云平台熔断限流的控制,在负载过大的情况下,根据云平台监控的消息,在网关中对后续进来的业务消息进行排队操作。
21.作为本发明的进一步改进,所述的数据库算法调度平台能够进行分库分表和读写分离的操作,支持异地部署。
22.作为本发明的另一种改进,提出了一种异构形态的多实例多数据源微服务方法,利用一种异构形态的多实例多数据源微服务系统,所述方法的具体步骤如下:
23.s1、业务路由:
24.a、消息接收器接受客户端过来的用户请求消息;
25.b、消息前置处理模块对用户请求消息进行解码和合法性检查,合法性检查包括用户id是否存在,是否为非法用,用户请求的格式是否正确等;
26.c、对于同类频繁的请求调用防ddos攻击接口,同类频繁的判断采用自适应算法;
27.d、根据用户识别出企业信息,提取企业id和用户id等信息,再在企业微服务实例管理表中搜寻空闲时间最长的微服务实例,将控制权转交给搜寻到的微服务实例;
28.e、如果没有搜索到可用的微服务实例,则通知业务微服务调度模块,根据弹性伸缩机制,动态启动新的微服务实例;
29.s2、业务微服务调度:
30.a、针对不同的企业用户,根据高内聚低耦合的方针分离出不同企业的业务微服务
实例、共性微服务实例,设计和规划出不同的微服务实例;
31.b、在微服务的注册中心,添加微服务的实例动态生成功能,通过java的反射机制根据指定的微服务id通知云平台生成新的k8s pod,在pod中根据镜像文件启动正确的微服务实例;
32.c、在微服务注册中心,生成企业微服务实例管理表,该实例管理表存储于分布式共享内存中,作为分布式系统的全局数据;
33.d、根据监控到的微服务的运行状态,动态刷新企业微服务实例管理表,在微服务被停止后做数据的实时跟踪;
34.s3、多源数据库调度:
35.a、数据库算法调度平台实现了数据库的注册和管理机制,在新的数据库部署或者生成后,主动注册到数据库注册机中,在数据库注册机中生成数据库管理表;
36.b、数据库请求接收器接管业务微服务调度模块发送过来的数据库请求,解析其中的企业账号信息;
37.c、sql语句生成器根据数据库请求接收器发送过来的消息,生成具体的sql语句;
38.d、数据库分配模块根据数据库注册机中的数据库管理表搜索具体的数据库id,没有分库分表的情况下直接建立到数据库的链接,将步骤c中生成的sql语句转发给具体的数据库;
39.e、在有分库分表、读写分离的情况下,根据分库的情况重新定位到正确的数据库,建立数据库链接,将步骤c中生成的sql语句转发给具体的数据库;
40.f、对于异地部署的数据库,数据库调度算法还需要对异地数据库服务器进行健康检查、连接保持、网络断开报警等其他任务;
41.s4、业务处理:
42.业务微服务调度模块完成上述调用之后,将业务处理结果返回给企业用户,完成业务逻辑。
43.所述的步骤s3的e中,对于读写分离的数据库请求,根据请求特征调用对应的读数据库或者是写数据库操作。
44.所述的步骤s3的e中,对于分库分表的数据库状态,识别其分库主key,根据主key转发该请求至正确的数据源。
45.所述的步骤s3的f中,对于异地部署的数据库,在系统启动时额外增加健康检查,在网络异动时间接推送报警信息至客户端。
46.本发明的有益效果:
47.本发明可以大幅度降低中小微企业在数字化转型中的实施成本,从而使得数字化转型的市场由大中型企业拓宽到中小微企业,数字化转型也带动了中小微企业的降本增效,减少了其粗放管理带来的浪费现象,增强了中小微企业的竞争力。本发明在微服务技术架构地基础上,创造性地提出了多实例多数据源的微服务治理方法,大幅度增强了系统的扩展性,实现了多企业使用一套系统,企业之间互不影响。同时采取了多数据源的设计框架,可以做到不同企业之间的数据完全隔离,保证了企业的信息安全性。
附图说明
48.下面结合附图和实施例对本发明进一步说明。
49.图1是背景技术中的一种现有技术方案的原理示意图;
50.图2是背景技术中的另一种现有技术方案的原理示意图;
51.图3是本发明的方法示意图;
52.图4为本发明的整体流程图;
53.图5为本发明的业务路由算法的流程示意图;
54.图6为本发明的数据库调度算法的流程示意图。
具体实施方式
55.为了使本领域的技术人员更好的理解本发明的技术方案,下面将结合实施例中的附图,对本发明进行更清楚、更完整的阐述,当然所描述的实施例只是本发明的一部分而非全部,基于本实施例,本领域技术人员在不付出创造性劳动性的前提下所获得的其他的实施例,均在本发明的保护范围内。
56.如图1和图2所示,为背景技术中的两种现有技术方案原理,已经在背景技术中做了分析描述,在此不做赘述。
57.如图3至图6所示,作为本发明的第一种实施例,提出了一种异构形态的多实例多数据源微服务系统,基于不同的企业用户,包括:
58.业务消息路由平台,由消息接收器、消息前置处理模块和消息路由模块组成,根据用户的业务情况进行业务逻辑处理;
59.业务微服务调度模块,用于获取业务消息路由平台的业务逻辑处理后的信息,调用业务微服务实例或者共性微服务实例;
60.数据库算法调度平台,根据业务微服务调度模块发过来的请求数据,分配企业专属的数据库给到业务微服务调度模块;
61.由业务微服务调度模块将企业专属的数据库给到业务消息路由平台,并将业务处理结果返回给企业用户,完成业务逻辑。
62.参见图3,作为对本发明的工作原理的说明,图中列举了a和b两个不同的企业用户,其中a企业用户在提出业务需求后,经过业务路由算法处理后,给到业务微服务调度模块,由业务微服务调度模块调用业务微服务实例或者共性微服务实例,并能够数据库算法调度平台分配企业专属的数据库给到业务微服务调度模块,最终将企业专属的数据库给到业务消息路由平台,并将业务处理结果返回给a企业用户,完成业务逻辑。
63.同样的,对于b企业用户在提出业务需求后,参照上述工作原理,也能够企业专属的数据库给到业务消息路由平台,并将业务处理结果返回给b企业用户。
64.可以看出a企业用户和b企业用户只是举例,当然本发明可以适用于多个企业用户,本发明的业务微服务调度模块可以调用业务微服务实例或者共性微服务实例,由于各个企业的业务系统也呈现千人千面的特点,因此,尽管各个企业的业务流程各不相同,但是运行在同一个平台和同一个系统之中,数据和实例相互独立、互不干扰。
65.本发明在微服务技术架构地基础上,创造性地提出了多实例多数据源的微服务治理方法,大幅度增强了系统的扩展性,实现了多企业使用一套系统,企业之间互不影响。
66.本发明采用集中部署的方式,大幅度降低了单个企业的数字化转型的成本,使得中小微企业的数字化转型变得可能。
67.对于业务微服务调度模块,在微服务的注册中心中,添加微服务实例的动态生成功能、生成企业微服务实例管理表,完成微服务实例的全生命周期管理。
68.所述数据库算法调度平台包括数据库注册机、数据库请求接收器、sql语句生成器和数据库分配模块。
69.本发明数据库算法调度平台基于数据库调度算法。而且本发明采取了多数据源的设计框架,可以做到不同企业之间的数据完全隔离,保证了企业的信息安全性。
70.所述的业务微服务实例或者共性微服务实例可以设置为多组,确保系统的可靠性。
71.所述业务消息路由平台基于业务路由算法,接受用户的请求,进行合法性校验;
72.如图5所示,所述的业务路由算法包含业务消息的合法性检查、防止ddos攻击、流量分流技术、业务分配算法类内容;
73.所述合法性检查包括企业id的存在性检查、用户信息的真实性检查;
74.所述业务微服务调度模块接受云平台熔断限流的控制,在负载过大的情况下,根据云平台监控的消息,在网关中对后续进来的业务消息进行排队操作。
75.所述的数据库算法调度平台能够进行分库分表和读写分离的操作,支持异地部署。
76.本发明通过重新设计微服务的技术框架,建立新的业务路由算法结合流量控制算法来分配企业用户的请求,同时都微服务进行了分层的架构设计,区分出了业务相关微服务和技术共性微服务,既做到了代码的复用,降低了系统开发的成本,也充分满足了不同企业之间的个性化需求,降低了中小微企业的数字化转型成本。
77.作为本发明的第二种实施例,提出了一种异构形态的多实例多数据源微服务方法,利用一种异构形态的多实例多数据源微服务系统,参见图4,所述方法的具体步骤如下:
78.s1、业务路由,基于业务路由算法,如图5所示,具体算法流程如下:
79.a、消息接收器接受客户端过来的用户请求消息;
80.b、消息前置处理模块对用户请求消息进行解码和合法性检查,合法性检查包括用户id是否存在,是否为非法用,用户请求的格式是否正确等;
81.c、对于同类频繁的请求调用防ddos攻击接口,同类频繁的判断采用自适应算法;判断是否流量过载,如果是,则启动同质的微服务实例,然后给出处理请求,如果否则进行步骤d;
82.d、根据用户识别出企业信息,提取企业id和用户id等信息,再在企业微服务实例管理表中搜寻空闲时间最长的微服务实例,将控制权转交给搜寻到的微服务实例;
83.e、如果没有搜索到可用的微服务实例,则通知业务微服务调度模块,根据弹性伸缩机制,动态启动新的微服务实例;
84.s2、业务微服务调度,基于微服务划分算法,具体算法流程如下:
85.e、针对不同的企业用户,根据高内聚低耦合的方针分离出不同企业的业务微服务实例、共性微服务实例,设计和规划出不同的微服务实例;
86.f、在微服务的注册中心,添加微服务的实例动态生成功能,通过java的反射机制
根据指定的微服务id通知云平台生成新的k8s pod,在pod中根据镜像文件启动正确的微服务实例;
87.g、在微服务注册中心,生成企业微服务实例管理表,该实例管理表存储于分布式共享内存中,作为分布式系统的全局数据;
88.h、根据监控到的微服务的运行状态,动态刷新企业微服务实例管理表,在微服务被停止后做数据的实时跟踪;
89.s3、多源数据库调度,基于数据库调度算法,如图6所示,具体算法流程如下:
90.a、数据库算法调度平台实现了数据库的注册和管理机制,在新的数据库部署或者生成后,主动注册到数据库注册机中,在数据库注册机中生成数据库管理表;
91.b、数据库请求接收器接管业务微服务调度模块发送过来的数据库请求,解析其中的企业账号信息;
92.c、sql语句生成器根据数据库请求接收器发送过来的消息,生成具体的sql语句;
93.d、数据库分配模块根据数据库注册机中的数据库管理表搜索具体的数据库id,没有分库分表的情况下直接建立到数据库的链接,将步骤c中生成的sql语句转发给具体的数据库;
94.e、在有分库分表、读写分离的情况下,根据分库的情况重新定位到正确的子数据库,建立数据库链接,将步骤c中生成的sql语句转发给具体的数据库;
95.f、对于异地部署的数据库,数据库调度算法还需要对异地数据库服务器进行健康检查、连接保持、网络断开报警等其他任务;
96.s4、业务处理:
97.业务微服务调度模块完成上述调用之后,将业务处理结果返回给企业用户,完成业务逻辑。
98.所述的步骤s3的e中,对于读写分离的数据库请求,根据请求特征调用对应的读数据库或者是写数据库操作。
99.所述的步骤s3的e中,对于分库分表的数据库状态,识别其分库主key,根据主key转发该请求至正确的数据源。
100.所述的步骤s3的f中,对于异地部署的数据库,在系统启动时额外增加健康检查,在网络异动时间接推送报警信息至客户端。
101.以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明内。本发明要求保护范围由所附的权利要求书及其等效物界定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1