一种基于分布式的服务注册与共识机制调度方法及系统

未命名 07-15 阅读:129 评论:0


1.本发明属于微服务注册与调度技术领域,具体涉及一种基于分布式的服务注册与共识机制调度方法及系统。


背景技术:

2.当下,互联网信息化建设与大数据、人工智能等技术的兴起,导致了各大网站与互联网平台的用户数量及其规模不断扩大,业务形式与信息数据量呈现爆炸性增长的趋势。在这种趋势下,负责数据处理与存储的中心云服务器由于自身计算资源和计算能力的限制,容易面临数据处理效率低、负载过大以及数据安全性无法有效保证的问题,进而导致用户体验与隐私保护受到影响。
3.随着计算机技术的蓬勃发展与网站应用的规模不断扩大,单体应用架构、垂直应用架构等常规的应用架构已经不能应对各种新的问题。越来越多的大型平台从中心式架构过渡到了分布式架构。面向服务的分布式架构(soa),通过将整个应用程序的不同服务进行拆分,然后分别部署到不同的分布式服务器,能够有效提升整个系统的稳定性与可拓展性。微服务架构在soa架构的基础上,通过去除企业服务总线实现了进一步去中心化,将不同业务种类的服务完全独立开。
4.在这种情况下,如何治理划分出的这些细小粒度的服务,成为了微服务平台的关键设计要素。同时,系统中服务数量的增加、服务节点自动扩容、服务重启等实时变化情况导致的服务运行状态发生变化,会对服务治理提出更高的要求。注册中心被用来实现自动化管理服务,被应用到了一些分布式场景中。但是随着业务量的不断增加,传统的注册中心架构难以应对高并发的问题,即当分布式架构中的许多微服务节点向服务调度平台的同一个注册中心节点发起服务请求时,服务调度平台的工作效率会降低,进而影响服务质量,甚至还可能会面临瘫痪的问题,导致整个服务系统无法正常工作。当服务调度平台中有多个节点协同工作时,可以缓解系统压力,但是需要一个统一的方案对节点的状态与信息进行同步以保证分布式一致性,同时也需要考虑系统可用性与运行效率的问题。


技术实现要素:

5.本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于分布式的服务注册与共识机制调度方法及系统,用于解决微服务架构的服务调度平台难以应对高并发情景以及对服务的共识机制难以统一有效调度的技术问题。
6.本发明采用以下技术方案:
7.一种基于分布式的服务注册与共识机制调度方法,包括以下步骤:
8.s1、themis系统根据自身需求选择性开启和配置数据库连接和集群同步;
9.s2、定义配置加载器的模式和功能;
10.s3、将themis系统基本信息、themis处理数据后返回的结果、用户名口令的结构体、注册进themis的分布式服务模型、注册进themis的分布式服务模型的数据库映射结构
体进行统一标准;
11.s4、核心业务逻辑层初始化后开启两类核心业务,其中,业务逻辑接口提供的业务操作供前端控制器调用获取返回的数据或操作的结果,底层数据逻辑业务维持themis系统功能的正常运行所需要的必要线程业务;
12.s5、themis系统通过核心业务逻辑层对外提供管理共识机制的调用接口,通过调用接口进行共识机制的相关调度与管理,并从业务逻辑接口获取调度的操作结果与数据信息,进行共识机制调度;
13.s6、将themis系统在运行过程中收到的http/https请求转发至对应的前端控制器中,同时通过后端路由对项目提供的openapi核心接口进行定义,包括服务通信型api和管理操作型api,向用户提供api操作;
14.s7、前端控制器收到http/https请求后,对数据进行鉴权、检查、异常处理操作,然后将合法正确的数据提交到对应的业务逻辑层进行处理;
15.s8、注册服务线程取出业务逻辑层中的相关信息并发送到注册中心进行服务信息注册;
16.s9、themis系统运行过程中,注册中心通过服务心跳线程判断每个服务的存活性,删除不再存活的线程,通过系统状态线程定时获取系统状态信息,并进行记录;
17.s10、将themis系统工作时需要异步执行的函数执行任务提交给协程池,协程池负责并发处理各任务;
18.s11、若themis系统发生内部异常,异常处理器负责对异常进行捕获处理,根据异常类型做出系统中断处理或相关日志的打印。
19.具体的,步骤s1中,数据库连接中的数据库连接层向数据库连接实例提供对数据库的连接管理、初始化、连接关闭、数据差异处理,然后数据库连接实例通过数据库接口层对外提供数据库的curd与事务功能,对远程数据库和本地数据库进行操作;当选择开启数据库连接模块,通过数据持久化功能进行数据持久化,备份系统关键信息;若系统因外部故障而产生宕机行为,则重新进行系统初始化时,通过数据库连接模块将已备份进数据库的数据读取到内存,恢复数据信息;当选择开启集群同步,通过调用raft算法进行集群同步。
20.具体的,步骤s2中,配置加载器包括服务配置加载器、数据库配置加载器、服务端口加载器、监听端口加载器、权限管理加载器、集群配置加载器和并发池加载器;配置加载器被初始化工厂调用时进行初始化,将系统的可变参数集中到一个统一的配置文件中,然后读取文件,使用系统内置的系统鉴权、字符检查、正则匹配等加载规则对读取的文件进行检查,若出错则抛出异常,调用系统销毁工厂终止程序的运行。
21.具体的,步骤s3中,数据模型模块采用命名空间、集群、服务名三层架构构建底层数据模型,规定系统基本信息数据模型、前端返回结果模型、权限用户名口令模型、数据库存储映射服务模型和服务模型;分别为当前部署的系统基本信息、处理数据后返回的结果、用户名口令的结构体、注册进系统的分布式服务模型、注册进系统的分布式服务模型的数据库映射结构体进行统一标准。
22.具体的,步骤s4中,核心业务逻辑层包括底层数据模型实例、调度中心算法工厂、底层数据模型实例管理工厂、前端控制器数据拦截与检查业务、核心业务、数据库相关业务、通信api相关业务和操作api相关业务;
23.底层数据模型实例、底层数据模型实例管理工厂、核心业务、数据库相关业务、调度中心算法工厂构成底层数据逻辑业务,负责供前端控制器调用获取返回的数据或操作的结果;
24.前端控制器数据拦截与检查业务、通信api相关业务、操作api相关业务构成业务逻辑接口,负责维持整个系统功能的正常运行所需要的必要线程业务;
25.核心业务逻辑层的核心业务包括注册服务线程、服务心跳线程与系统定时状态检查线程,注册服务线程负责将业务逻辑层注册进底层并发队列中的服务信息取出来,发送相关信息到注册中心进行服务信息注册。服务心跳线程负责对每个服务的存活性进行判断,系统状态线程则是定时对系统状态信息进行获取并记录。
26.具体的,步骤s7中,前端控制器的具体操作如下:
27.s701、后端路由将请求发至对应的前端控制器;
28.s702、前端控制器中的拦截器链执行拦截操作,校验请求的相关权限,将权限合法的请求发至控制器;
29.s703、若用户开启了集群容错功能与debug调试模式,拦截器还会执行集群角色转发、debug日志打印的操作;同时,开发者可根据自身业务要求实现相应拦截器插件,并在后端路由部分进行注册;
30.s704、控制器对拦截器发来的数据执行异常处理操作,并将数据进行参数绑定,之后通过后端业务调用功能将请求与数据发至相应的业务层;
31.s705、业务层按照请求对数据进行具体的增删查改等操作。
32.具体的,步骤s10中,协程池的并发任务处理具体为:
33.s1001、将需要做的任务打包成内联体函数和异常体函数并传入协程池;
34.s1002、协程池调采用creatework方法接收本组s901打包后的内联体函数和异常体函数,并用函数进行装饰、组合,加入协程池中维护的一个异步调用队列;
35.s1003、若协程池内有空余的协程,通过通道取出异步调用队列中的任务进行执行,否则等待当前正在执行的任务执行完后有空余协程可用时再被调用并执行;
36.s1004、若协程在执行任务时产生异常,调用任务中打包的异常处理函数进行异常处理;
37.s1005、协程池在每次完成任务后,加锁判断当前的工作协程数是否大于之前定义的核心线程数,若大于,则自身跳出循环并结束协程,若小于,则自身返回循环对异步通道进行监听。
38.具体的,步骤s11中,异常处理具体为:
39.s1101、根据自身业务需求在异常处理工厂注册与拓展自定义的异常处理器;
40.s1102、当系统捕获到异常时,通过调用异常处理器接口将异常发送至异常处理器工厂;
41.s1103、异常处理器工厂对异常进行分级处理,并联系对应级别的的异常处理器进行异常分发;
42.s1104、各异常处理器对异常做出响应,用户异常处理器仅引起日志打印,其他异常处理器同时引起系统中断和日志打印。
43.具体的,当销毁系统时,调用系统销毁工厂,依次关闭数据库模块、集群模块、并发
池、服务模块,对系统进行销毁。
44.第二方面,本发明实施例提供了一种基于分布式的服务注册与共识机制调度系统,包括:
45.初始模块,themis系统根据自身需求选择性开启和配置数据库连接和集群同步;
46.自定义模块,根据自身需求对配置加载器中的模式和功能进行自定义;
47.映射模块,将themis系统基本信息、themis处理数据后返回的结果、用户名口令的结构体、注册进themis的分布式服务模型、注册进themis的分布式服务模型的数据库映射结构体进行统一标准;
48.业务模块,核心业务逻辑层初始化后开启两类核心业务,业务逻辑接口提供的业务操作供前端控制器调用获取返回的数据或操作的结果,底层数据逻辑业务维持themis系统功能的正常运行所需要的必要线程业务;
49.调用模块,themis系统通过核心业务逻辑层对外提供管理共识机制的调用接口,通过调用接口进行共识机制的相关调度与管理,并从业务逻辑接口获取调度的操作结果与数据信息,进行共识机制调度;
50.转发模块,将themis系统在运行过程中收到的http/https请求转发至对应的前端控制器中,同时通过后端路由对项目提供的openapi核心接口进行定义,包括服务通信型api和管理操作型api,向用户提供具体的api操作;
51.异常处理模块,前端控制器收到http/https请求后,对数据进行鉴权、检查、异常处理操作,然后将合法正确的数据提交到对应的业务逻辑层进行处理;
52.注册模块,注册服务线程取出业务逻辑层中的相关信息并发送到注册中心进行服务信息注册;
53.判断模块,themis系统运行过程中,注册中心通过服务心跳线程判断每个服务的存活性,删除不再存活的线程,通过系统状态线程定时获取系统状态信息,并进行记录;
54.处理模块,将themis系统工作时需要异步执行的函数执行任务提交给协程池,协程池负责并发处理各任务;
55.调度模块,若themis系统发生内部异常,异常处理器负责对异常进行捕获处理,根据异常类型做出系统中断处理或相关日志的打印。
56.与现有技术相比,本发明至少具有以下有益效果:
57.一种基于分布式的服务注册与共识机制调度方法,themis系统启动后,用户可选择性开启数据库连接、集群同步模块并定义配置加载器属性,通过核心业务逻辑层对外提供管理共识机制的调用接口,目的在于使用户根据自身需求进行特定功能的配置,方便对注册中心所管理的节点进行共识机制调度,提升整个系统的拓展性与可用性。用户在注册中心注册服务之后由各模块依次进行鉴权、异常处理、服务注册、存活性判断,并通过协程池处理各模块需要异步执行的函数调用,其好处在于从各环节提升工作流程的可靠性与抗压性,减少系统异常中断的可能性。
58.进一步的,themis系统可以通过选择开启数据库连接模块与集群同步模块提升系统的容灾能力与恢复能力并一定程度上保证分布式服务的一致性需求。开启数据库连接模块模块后,通过系统配置文件每隔一定时间进行一次数据持久化,将注册信息、服务数据、节点状态信息存储在远程或本地数据库中,用户还可选择设置多种持久化设置。当系统由
于外部环境问题如断电等情况造成系统宕机时,等待外部环境恢复正常后,通过该模块将最近一次存储的所有信息从数据库中读取并恢复,保证系统对于特殊异常的应对能力。开启集群同步模块后,系统采用raft共识协议进行集群同步,将注册中心节点分为三种状态,通过三种状态的状态控制器控制各节点完成选举过程选出工作节点,其好处在于,采用公平的同步机制将注册中心节点划分为不同状态,实现了多个节点的信息同步与协调配合,从而避免单个节点负载压力过大,同时raft协议具有易于实现、高性能、容错性好等特点,进一步提升系统的综合性能。
59.进一步的,themis系统通过配置加载器方便参数的动态配置。对于静态编译性语言,修改源程序中的数据时需要将原有程序重新预处理、编译、汇编、链接,从而得到新的可执行程序,对于运维产生了极大不便。通过该模块的设置,系统可变参数集中到一个统一的配置文件中,该文件中的参数加载进内存,需要修改参数时可停止程序运行后通过第三方模块读取文件并修改,从而省去了重新编译等环节,方便对系统进行维护与修改。
60.进一步的,通过数据模型模块对整个系统的各类型数据进行分类和定义,好处在于对数据进行统一规范,增强不同开发人员对数据的理解与使用的方便性,方便开发时通过各数据模型更好地进行代码复用,避免由于数据定义不明导致对象的重复创建,利于日后代码开发工作的进行与结构的调整。
61.进一步的,核心业务逻辑层设置8个模块并根据业务类型分为业务逻辑接口和底层数据逻辑部分。其目的在于,themis系统需要对外提供注册中心、调度中心等业务,同时也需要对底层数据模型进行处理。核心业务逻辑层将上述应用层与底层逻辑分开,设置不同的处理模块,业务逻辑接口连接前端控制器完成服务注册等应用业务,分离出的底层数据逻辑为业务逻辑接口提供支撑。底层数据逻辑对底层数据设置读写锁以实现并发读写,操作底层数据时与业务逻辑接口进行异步调用,能够实现更快的反馈速度,同时大大增加系统的流量容灾。具体的,核心业务中系统注册线程负责将并发队列中的服务信息取出来,发送相关信息到注册中心进行注册,其目的在于通过根据负载均衡策略为队列中的服务选择合适的节点,然后进行http/https、rpc调用。服务心跳线程负责对每个服务的存活性进行判断,其目的在于使服务节点向注册中心节点主动上报其健康状态,避免注册中心的主动询问产生大量计算和内存开销。系统状态线程定时对系统状态信息进行获取并记录,其目的在于采用异步解耦的方式,将获取到的系统信息放入一个全局变量中,网络中的信息请求直接从该变量中获取,大大减少了通过调用系统api获取状态信息的耗时,利于并发调用。
62.进一步的,前端控制器在收到网络数据处理请求时将数据相关的控制操作和具体业务操作分开,对发来的请求依次经过后端路由的转发、拦截器的拦截执行、控制器执行三个步骤,然后交给业务层进行增删改查等具体业务操作,其好处在于上述两部分分离后可以对系统异常的处理采用更细致的划分,使异常控制机制更加完备可靠而不影响数据操作,同时提高开发人员的专注度与系统架构的清晰度。
63.进一步的,协程池通过维护一个异步调用队列接收其他模块需要异步执行的函数任务并与异常处理函数进行组合,同时通过观察者模式控制工作协程数,其好处在于通过协程池的工作对协程进行有效复用,避免了协程之间频繁的并发切换带来过高的时延,保证了高并发、高流量场景下themis系统的运行效率。
64.进一步的,异常处理模块将程序中的异常划分为不同等级并设置相应级别的异常处理器与系统日志,同时允许开发人员设置业务所需的异常处理方式。其目的在于方便对程序运行中的各种异常分级管理,进而使系统能够做出不同的异常相应,实现在全生命周期中捕获异常、处理异常、日志打印等功能,增强系统处理异常的能力。
65.进一步的,系统结束运行时按照顺序关闭数据库模块、集群模块、并发池、服务模块,其目的在于系统销毁时,不同模块需要依次进行内存释放、线程退出等操作,避免销毁时出现数据丢失或泄露。
66.可以理解的是,上述第二方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
67.综上所述,本发明提供了一种基于分布式的服务注册与共识机制调度方法及系统,为分布式系统设计了一套支持多个注册中心协同工作的系统方案。通过用户层、接口层、核心业务层、中心数据模型、异常处理与数据库连接模块、集群同步方案等多层面的设计保证了运行时的高并发能力、抗灾能力以及平台的可拓展性。同时对外提供管理共识机制的接口,使用户能够直接对分布式系统中的共识机制进行有效调度与管理。
68.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
69.图1为本发明服务注册与共识机制调度的系统架构图;
70.图2为本发明配置加载模块架构图;
71.图3为本发明前端控制器架构图;
72.图4为本发明底层数据模型架构图;
73.图5为本发明异常处理模型架构图;
74.图6为本发明数据库连接模块架构图;
75.图7为本发明并发池模型架构图;
76.图8为本发明核心业务逻辑模型架构图;
77.图9为本发明集群同步模块的初始化流程图;
78.图10为本发明集群控制模块状态控制器架构图;
79.图11为本发明中集群同步模块采用的共识算法示意图;
80.图12为本发明中协程池与原生gmp并发模型的平均时延对比图;
81.图13为本发明中协程池与原生gmp并发模型的最好时延对比图;
82.图14为本发明系统与传统系统工作时存储对象的空间耗费对比图;
83.图15为本发明系统与传统系统工作时存储对象的时间耗费对比图。
具体实施方式
84.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
85.在本发明的描述中,需要理解的是,术语“包括”和“包含”指示所描述特征、整体、
步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
86.还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
87.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
88.应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。
89.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
90.在附图中示出了根据本发明公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
91.本发明提供了一种基于分布式的服务注册与共识机制调度方法,针对整个系统的高并发需求以及服务调度系统的运行效率需求,依托于传统分布式微服务项目注册中心的理念,提出了一个动态服务发现与节点调度的服务调度平台,以解决系统在高负载情况下面临的效率问题和稳定性问题。系统提供了一种集群同步方案,采用raft共识算法作为方案的共识机制,保证系统的高可用性与分布式一致性。针对系统并发调度的上下文切换开销过大影响性能的问题,提出一种基于协程并发池的调度模式并设计了一种轻量级协程池,减轻系统进程调度负担。同时,为了拓展服务节点的安全性,还支持系统所管理的服务节点通过服务调度系统接入区块链网络以提升整个微服务架构中的数据安全性与系统稳定性。
92.请参阅图1,本发明一种基于分布式的服务注册与共识机制调度服务注册与共识机制调度的系统架构包括用户层、openapi、核心业务层、中心数据模型以及可供选择开启的系统容灾与数据备份模块和集群同步模块。
93.其中,用户层提供控制台、多语言sdk、浏览器支持的管理平台、客户与代理平台。
94.用户层和核心业务层通过openapi接口进行连接。
95.核心业务层提供服务管理、配置管理、工具模块三大主要服务。
96.中心数据模型负责构建底层数据模型、备份相关数据以及进行安全的并发处理。
97.具体的,整个系统由12个模块组成,分别为配置加载器、前端控制器、数据模型模
块、异常处理器、初始化/销毁工厂、数据库连接模块、并发池、后端路由、核心业务逻辑层、集群同步模块、工具类、加密解密模块。
98.其中,核心业务逻辑层是相关区块链调度与分布式服务管理等业务的核心模块,集群同步模块是系统高可用、分布式一致性等问题的处理方案,可供选择开启。
99.本发明一种基于分布式的服务注册与共识机制调度方法,包括以下步骤:
100.s1、themis系统通过初始化工厂进行初始化工作,按顺序加载核心模块中的日志模块、配置模块和并发池模块,用户根据自身需求选择性开启和配置数据库连接模块和集群同步模块;
101.请参阅图6,数据库连接模块调用数据库连接实例。同时数据库连接模块中的数据库连接层向数据库连接实例提供对数据库的连接管理、初始化、连接关闭、数据差异处理等操作,然后数据库连接实例通过数据库接口层对外提供数据库的curd与事务功能,对远程数据库和本地数据库进行操作。
102.请参阅图9,集群同步模块有自己单独的底层数据模型与数据模型初始化工厂。其初始化流程是:系统初始化模块进行初始化调用,初始化集群底层数据模型,添加高可用集群基本信息,初始化udp信息传输/接收队列,创建udp信息接收/发送服务,创建核心业务数据同步通道,开启状态控制器。
103.请参阅图10和图11,状态控制器对集群节点状态的读取然后分发到不同状态,后面对应三个角色控制器,分别操控着集群节点对应三个角色的活动与动作,完成共识算法中选举工作。在同步过程中,集群通过udp信息收发器进行通信,具体通过udp信息接收和发送队列以及对应线程完成对角色控制器通信信息的响应。
104.s2、用户根据自身需求对配置加载器模块中的模式和功能进行自定义,便于后续修改系统相关参数;
105.请参阅图2,配置加载器模块包括7个具体的子模块,分别是服务配置加载器、数据库配置加载器、服务端口加载器、监听端口加载器、权限管理加载器、集群配置加载器、并发池加载器。子模块通过调用接口被配置加载器调用。配置加载器被初始化工厂调用时进行初始化,将系统的可变参数集中到一个统一的配置文件中,然后读取该文件,使用系统内置的系统鉴权、字符检查、正则匹配等加载规则对读取的文件进行检查,若出错则抛出异常,调用系统销毁工厂终止程序的运行。
106.s3、数据模型模块将系统基本信息、themis处理数据后返回的结果、用户名口令的结构体、注册进themis的分布式服务模型、注册进themis的分布式服务模型的数据库映射结构体进行统一标准;
107.请参阅图4,数据模型模块采用命名空间、集群、服务名三层架构构建底层数据模型,规定了5个基础数据模型,分别为系统基本信息数据模型(computerinfomodel)、前端返回结果模型(resultmodel)、权限用户名口令模型(rootmodel)、数据库存储映射服务模型(servermappermodel)、服务模型(servermodel)。通过这五个基础模型分别为当前部署的系统基本信息、处理数据后返回的结果、用户名口令的结构体、注册进系统的分布式服务模型、注册进系统的分布式服务模型的数据库映射结构体进行统一标准。
108.s4、核心业务逻辑层初始化后开启两类核心业务,其中,业务逻辑接口提供的业务操作供前端控制器调用获取返回的数据或操作的结果,底层数据逻辑业务维持整个系统功
能的正常运行所需要的必要线程业务;
109.请参阅图8,核心业务逻辑层从功能上可以分为8个模块,分别为底层数据模型实例、调度中心算法工厂、底层数据模型实例管理工厂、前端控制器数据拦截与检查业务、核心业务、数据库相关业务、通信api相关业务、操作api相关业务。模块根据业务类型分为两类。其中底层数据模型实例、底层数据模型实例管理工厂、核心业务、数据库相关业务、调度中心算法工厂构成底层数据逻辑业务,负责供前端控制器调用获取返回的数据或操作的结果;前端控制器数据拦截与检查业务、通信api相关业务、操作api相关业务构成业务逻辑接口,负责维持整个系统功能的正常运行所需要的必要线程业务。核心业务逻辑层中,核心业务主要包括注册服务线程、服务心跳线程与系统定时状态检查线程三部分。如上文所述,注册服务线程负责将业务逻辑层注册进底层并发队列中的服务信息取出来,发送相关信息到注册中心进行服务信息注册。服务心跳线程负责对每个服务的存活性进行判断。系统状态线程则是定时对系统状态信息进行获取并记录。
110.s5、themis系统通过核心业务逻辑层对外提供管理共识机制的调用接口,通过调用接口进行共识机制的相关调度与管理,并从业务逻辑接口获取调度的操作结果与数据信息,进行共识机制调度;
111.s6、后端路由模块将themis系统在运行过程中收到的http/https请求转发至对应的前端控制器中,同时通过后端路由对项目提供的openapi核心接口进行定义,包括服务通信型api和管理操作型api,向用户提供具体的api操作;
112.s7、前端控制器受到http/https请求后,对数据进行鉴权、检查、异常处理操作,然后将合法正确的数据提交到对应的业务逻辑层进行处理;
113.请参阅图3,对前端控制器与业务处理模块进行分离,对发来请求的操作包括以下步骤:
114.s701、后端路由将请求发至对应的前端控制器;
115.s702、前端控制器中的拦截器链执行拦截操作,校验请求的相关权限,将权限合法的请求发至控制器;
116.s703、若用户开启了集群容错功能与debug调试模式,拦截器还会执行集群角色转发、debug日志打印的操作;同时,开发者可根据自身业务要求实现相应拦截器插件,并在后端路由部分进行注册;
117.s704、控制器对拦截器发来的数据执行异常处理操作,并将数据进行参数绑定,之后通过后端业务调用功能将请求与数据发至相应的业务层;
118.s705、业务层按照请求对数据进行具体的增删查改等操作。
119.s8、themis系统核心业务中的注册服务线程取出业务逻辑层中的相关信息并发送到注册中心进行服务信息注册,系统即可运行该服务;
120.s9、在themis系统运行过程中,注册中心通过服务心跳线程判断每个服务的存活性,删除已经不再存活的线程,同时,系统通过系统状态线程定时获取系统状态信息,并进行记录;
121.s10、各模块处理任务时,将任务提交给协程池,协程池负责并发处理各任务;
122.请参阅图7,协程池的并发任务处理具体包括以下步骤:
123.s1001、其他模块调用协程池模块时,将需要做的任务打包成两类函数,即内联体
函数和异常体函数,并将打包后的函数传入协程池;
124.s1002、协程池调用creatework方法接收该打包后的内联体函数与对应的异常体函数,并用一个大的函数进行装饰、组合,加入协程池中维护的一个异步调用队列;
125.s1003、若协程池内有空余的协程,则通过通道取出异步调用队列中的任务进行执行,否则等待当前正在执行的任务执行完后有空余协程可用时再被调用并执行;
126.s1004、若协程在执行任务时产生异常,则会调用该任务中打包的异常处理函数进行异常处理;
127.s1005、协程池在每次完成任务后,加锁判断当前的工作协程数是否大于之前定义的核心线程数,若大于,则自身跳出循环并结束协程,若小于,则自身返回循环对异步通道进行监听。
128.s11、若系统发生了内部异常,异常处理器负责对异常进行捕获处理,根据异常类型做出系统中断处理或相关日志的打印;
129.请参阅图5,异常处理器对异常进行分级表示,4级异常分别为配置文件异常、数据库异常、系统异常、用户异常,对于每级异常单独设立异常处理器,分别对应配置文件异常处理器、数据库异常处理器、系统异常处理器、用户异常处理器,同时有一个总的异常处理器对异常进行分发。异常处理具体包括以下步骤:
130.s1101、开发人员根据自身业务需求选择性地在异常处理工厂注册与拓展自定义的异常处理器;
131.s1102、当系统捕获到异常时,首先通过调用异常处理器接口将异常发送至异常处理器工厂;
132.s1103、异常处理器工厂对异常进行分级处理,并联系对应级别的的异常处理器进行异常分发;
133.s1104、各异常处理器对异常做出响应,其中用户异常处理器仅引起日志打印,其他异常处理器会同时引起系统中断和日志打印。
134.s12、若用户选择了开启数据库连接模块,则系统通过数据持久化功能按照开发人员指定的参数每隔一段时间进行数据持久化,备份系统关键信息。若系统因外部故障而产生了宕机等行为,则重新进行系统初始化时,通过数据库连接模块将已备份进数据库的数据读取到内存,恢复数据信息;
135.s13、若用户选择了开启集群同步模块,则系统通过该模块调用raft算法进行集群同步,提升系统的可用性;
136.s14、开发人员需要销毁系统时,调用系统销毁工厂,依次关闭数据库模块、集群模块、并发池、服务模块,对系统进行销毁。
137.本发明再一个实施例中,提供一种基于分布式的服务注册与共识机制调度系统,该系统能够用于实现上述基于分布式的服务注册与共识机制调度方法,具体的,该基于分布式的服务注册与共识机制调度系统包括模块、模块、模块、模块以及模块。
138.其中,初始模块,themis系统根据自身需求选择性开启和配置数据库连接和集群同步;
139.自定义模块,根据自身需求对配置加载器中的模式和功能进行自定义;
140.映射模块,将themis系统基本信息、themis处理数据后返回的结果、用户名口令的
结构体、注册进themis的分布式服务模型、注册进themis的分布式服务模型的数据库映射结构体进行统一标准;
141.业务模块,核心业务逻辑层初始化后开启两类核心业务,业务逻辑接口提供的业务操作供前端控制器调用获取返回的数据或操作的结果,底层数据逻辑业务维持themis系统功能的正常运行所需要的必要线程业务;
142.调用模块,themis系统通过核心业务逻辑层对外提供管理共识机制的调用接口,通过调用接口进行共识机制的相关调度与管理,并从业务逻辑接口获取调度的操作结果与数据信息,进行共识机制调度;
143.转发模块,将themis系统在运行过程中收到的http/https请求转发至对应的前端控制器中,同时通过后端路由对项目提供的openapi核心接口进行定义,包括服务通信型api和管理操作型api,向用户提供具体的api操作;
144.异常处理模块,前端控制器收到http/https请求后,对数据进行鉴权、检查、异常处理操作,然后将合法正确的数据提交到对应的业务逻辑层进行处理;
145.注册模块,注册服务线程取出业务逻辑层中的相关信息并发送到注册中心进行服务信息注册;
146.判断模块,themis系统运行过程中,注册中心通过服务心跳线程判断每个服务的存活性,删除不再存活的线程,通过系统状态线程定时获取系统状态信息,并进行记录;
147.处理模块,将themis系统工作时需要异步执行的函数执行任务提交给协程池,协程池负责并发处理各任务;
148.调度模块,若themis系统发生内部异常,异常处理器负责对异常进行捕获处理,根据异常类型做出系统中断处理或相关日志的打印。
149.本发明再一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor、dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于基于分布式的服务注册与共识机制调度方法的操作,包括:
150.themis系统根据自身需求选择性开启和配置数据库连接和集群同步;根据自身需求对配置加载器中的模式和功能进行自定义;将themis系统基本信息、themis处理数据后返回的结果、用户名口令的结构体、注册进themis的分布式服务模型、注册进themis的分布式服务模型的数据库映射结构体进行统一标准;核心业务逻辑层初始化后开启两类核心业务,其中,业务逻辑接口提供的业务操作供前端控制器调用获取返回的数据或操作的结果,底层数据逻辑业务维持themis系统功能的正常运行所需要的必要线程业务;themis系统通过核心业务逻辑层对外提供管理共识机制的调用接口,通过调用接口进行共识机制的相关调度与管理,并从业务逻辑接口获取调度的操作结果与数据信息,进行共识机制调度;将
themis系统在运行过程中收到的http/https请求转发至对应的前端控制器中,同时通过后端路由对项目提供的openapi核心接口进行定义,包括服务通信型api和管理操作型api,向用户提供api操作;前端控制器收到http/https请求后,对数据进行鉴权、检查、异常处理操作,然后将合法正确的数据提交到对应的业务逻辑层进行处理;注册服务线程取出业务逻辑层中的相关信息并发送到注册中心进行服务信息注册;themis系统运行过程中,注册中心通过服务心跳线程判断每个服务的存活性,删除不再存活的线程,通过系统状态线程定时获取系统状态信息,并进行记录;将themis系统工作时需要异步执行的函数执行任务提交给协程池,协程池负责并发处理各任务;若themis系统发生内部异常,异常处理器负责对异常进行捕获处理,根据异常类型做出系统中断处理或相关日志的打印。
151.本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
152.可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关基于分布式的服务注册与共识机制调度方法的相应步骤;计算机可读存储介质中的一条或一条以上指令由处理器加载并执行如下步骤:
153.themis系统根据自身需求选择性开启和配置数据库连接和集群同步;根据自身需求对配置加载器中的模式和功能进行自定义;将themis系统基本信息、themis处理数据后返回的结果、用户名口令的结构体、注册进themis的分布式服务模型、注册进themis的分布式服务模型的数据库映射结构体进行统一标准;核心业务逻辑层初始化后开启两类核心业务,其中,业务逻辑接口提供的业务操作供前端控制器调用获取返回的数据或操作的结果,底层数据逻辑业务维持themis系统功能的正常运行所需要的必要线程业务;themis系统通过核心业务逻辑层对外提供管理共识机制的调用接口,通过调用接口进行共识机制的相关调度与管理,并从业务逻辑接口获取调度的操作结果与数据信息,进行共识机制调度;将themis系统在运行过程中收到的http/https请求转发至对应的前端控制器中,同时通过后端路由对项目提供的openapi核心接口进行定义,包括服务通信型api和管理操作型api,向用户提供api操作;前端控制器收到http/https请求后,对数据进行鉴权、检查、异常处理操作,然后将合法正确的数据提交到对应的业务逻辑层进行处理;注册服务线程取出业务逻辑层中的相关信息并发送到注册中心进行服务信息注册;themis系统运行过程中,注册中心通过服务心跳线程判断每个服务的存活性,删除不再存活的线程,通过系统状态线程定时获取系统状态信息,并进行记录;将themis系统工作时需要异步执行的函数执行任务提交给协程池,协程池负责并发处理各任务;若themis系统发生内部异常,异常处理器负责对异常进行捕获处理,根据异常类型做出系统中断处理或相关日志的打印。
154.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
155.请参阅图14和图15,通过模拟正常工作条件下需要存储的对象个数和共识机制运行时同步对象的个数对本系统的性能进行了测试;在存储对象个数不断增加的情况下,本系统消耗的空间资源明显小于传统系统,这是因为本系统将注册中心与共识机制调度系统相结合,共识机制调度系统可以实现去重,避免结点信息在多个节点上重复存储,减少存储空间的消耗,注册中心可以把结点的信息进行统一管理。在分布式系统对象同步个数增加时,本系统产生的数据同步时延明显低于传统系统,这是因为系统协程池的设计减小了协程之间的切换时延,同时多个模块采用更细粒度的功能划分,降低了系统的复杂度,进一步提升了系统的工作效率和性能。
156.请参阅图12和图13,通过模拟大规模高并发计算对本发明的性能进行了测试,所提出的系统协程池的平均时延与最好时延分别比原生gmp模型分别缩短13.62%和13.69%,系统的并发能力良好,更能应对高负载高并发的应用场景。
157.综上所述,本发明一种基于分布式的服务注册与共识机制调度方法及系统,通过在服务调度平台中部署多个注册中心节点,利用raft算法选出主节点负责当前阶段的工作,将单个注册中心的负载压力转移到多个节点上。通过协程池、异常处理模块等多个模块的设计与工作流程的优化提升themis系统的稳定性与容灾能力。同时对外提供所管理的服务的共识机制调度接口,方便对共识机制的运行进行统一有效的管理,具有良好的可拓展性与方便性。
158.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
159.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
160.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
161.在本发明所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或
单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
162.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
163.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
164.所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(randomaccess memory,ram)、电载波信号、电信信号以及软件分发介质等,需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
165.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
166.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
167.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
168.以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书
的保护范围之内。

技术特征:
1.一种基于分布式的服务注册与共识机制调度方法,其特征在于,包括以下步骤:s1、themis系统根据自身需求选择性开启和配置数据库连接和集群同步;s2、定义配置加载器的模式和功能;s3、将themis系统基本信息、themis处理数据后返回的结果、用户名口令的结构体、注册进themis的分布式服务模型、注册进themis的分布式服务模型的数据库映射结构体进行统一标准;s4、核心业务逻辑层初始化后开启两类核心业务,其中,业务逻辑接口提供的业务操作供前端控制器调用获取返回的数据或操作的结果,底层数据逻辑业务维持themis系统功能的正常运行所需要的必要线程业务;s5、themis系统通过核心业务逻辑层对外提供管理共识机制的调用接口,通过调用接口进行共识机制的相关调度与管理,并从业务逻辑接口获取调度的操作结果与数据信息,进行共识机制调度;s6、将themis系统在运行过程中收到的http/https请求转发至对应的前端控制器中,同时通过后端路由对项目提供的openapi核心接口进行定义,包括服务通信型api和管理操作型api,向用户提供api操作;s7、前端控制器收到http/https请求后,对数据进行鉴权、检查、异常处理操作,然后将合法正确的数据提交到对应的业务逻辑层进行处理;s8、注册服务线程取出业务逻辑层中的相关信息并发送到注册中心进行服务信息注册;s9、themis系统运行过程中,注册中心通过服务心跳线程判断每个服务的存活性,删除不再存活的线程,通过系统状态线程定时获取系统状态信息,并进行记录;s10、将themis系统工作时需要异步执行的函数执行任务提交给协程池,协程池负责并发处理各任务;s11、若themis系统发生内部异常,异常处理器负责对异常进行捕获处理,根据异常类型做出系统中断处理或相关日志的打印。2.根据权利要求1所述的基于分布式的服务注册与共识机制调度方法,其特征在于,步骤s1中,数据库连接中的数据库连接层向数据库连接实例提供对数据库的连接管理、初始化、连接关闭、数据差异处理,然后数据库连接实例通过数据库接口层对外提供数据库的curd与事务功能,对远程数据库和本地数据库进行操作;当选择开启数据库连接模块,通过数据持久化功能进行数据持久化,备份系统关键信息;若系统因外部故障而产生宕机行为,则重新进行系统初始化时,通过数据库连接模块将已备份进数据库的数据读取到内存,恢复数据信息;当选择开启集群同步,通过调用raft算法进行集群同步。3.根据权利要求1所述的基于分布式的服务注册与共识机制调度方法,其特征在于,步骤s2中,配置加载器包括服务配置加载器、数据库配置加载器、服务端口加载器、监听端口加载器、权限管理加载器、集群配置加载器和并发池加载器;配置加载器被初始化工厂调用时进行初始化,将系统的可变参数集中到一个统一的配置文件中,然后读取文件,使用系统内置的系统鉴权、字符检查、正则匹配等加载规则对读取的文件进行检查,若出错则抛出异常,调用系统销毁工厂终止程序的运行。4.根据权利要求1所述的基于分布式的服务注册与共识机制调度方法,其特征在于,步
骤s3中,数据模型模块采用命名空间、集群、服务名三层架构构建底层数据模型,规定系统基本信息数据模型、前端返回结果模型、权限用户名口令模型、数据库存储映射服务模型和服务模型;分别为当前部署的系统基本信息、处理数据后返回的结果、用户名口令的结构体、注册进系统的分布式服务模型、注册进系统的分布式服务模型的数据库映射结构体进行统一标准。5.根据权利要求1所述的基于分布式的服务注册与共识机制调度方法,其特征在于,步骤s4中,核心业务逻辑层包括底层数据模型实例、调度中心算法工厂、底层数据模型实例管理工厂、前端控制器数据拦截与检查业务、核心业务、数据库相关业务、通信api相关业务和操作api相关业务;底层数据模型实例、底层数据模型实例管理工厂、核心业务、数据库相关业务、调度中心算法工厂构成底层数据逻辑业务,负责供前端控制器调用获取返回的数据或操作的结果;前端控制器数据拦截与检查业务、通信api相关业务、操作api相关业务构成业务逻辑接口,负责维持整个系统功能的正常运行所需要的必要线程业务;核心业务逻辑层的核心业务包括注册服务线程、服务心跳线程与系统定时状态检查线程,注册服务线程负责将业务逻辑层注册进底层并发队列中的服务信息取出来,发送相关信息到注册中心进行服务信息注册;服务心跳线程负责对每个服务的存活性进行判断,系统状态线程则是定时对系统状态信息进行获取并记录。6.根据权利要求1所述的基于分布式的服务注册与共识机制调度方法,其特征在于,步骤s7中,前端控制器的具体操作如下:s701、后端路由将请求发至对应的前端控制器;s702、前端控制器中的拦截器链执行拦截操作,校验请求的相关权限,将权限合法的请求发至控制器;s703、若用户开启了集群容错功能与debug调试模式,拦截器还会执行集群角色转发、debug日志打印的操作;同时,开发者可根据自身业务要求实现相应拦截器插件,并在后端路由部分进行注册;s704、控制器对拦截器发来的数据执行异常处理操作,并将数据进行参数绑定,之后通过后端业务调用功能将请求与数据发至相应的业务层;s705、业务层按照请求对数据进行具体的增删查改等操作。7.根据权利要求1所述的基于分布式的服务注册与共识机制调度方法,其特征在于,步骤s10中,协程池的并发任务处理具体为:s1001、将需要做的任务打包成内联体函数和异常体函数并传入协程池;s1002、协程池调采用creatework方法接收本组s901打包后的内联体函数和异常体函数,并用函数进行装饰、组合,加入协程池中维护的一个异步调用队列;s1003、若协程池内有空余的协程,通过通道取出异步调用队列中的任务进行执行,否则等待当前正在执行的任务执行完后有空余协程可用时再被调用并执行;s1004、若协程在执行任务时产生异常,调用任务中打包的异常处理函数进行异常处理;s1005、协程池在每次完成任务后,加锁判断当前的工作协程数是否大于之前定义的核
心线程数,若大于,则自身跳出循环并结束协程,若小于,则自身返回循环对异步通道进行监听。8.根据权利要求1所述的基于分布式的服务注册与共识机制调度方法,其特征在于,步骤s11中,异常处理具体为:s1101、根据自身业务需求在异常处理工厂注册与拓展自定义的异常处理器;s1102、当系统捕获到异常时,通过调用异常处理器接口将异常发送至异常处理器工厂;s1103、异常处理器工厂对异常进行分级处理,并联系对应级别的的异常处理器进行异常分发;s1104、各异常处理器对异常做出响应,用户异常处理器仅引起日志打印,其他异常处理器同时引起系统中断和日志打印。9.根据权利要求1至8中所述的基于分布式的服务注册与共识机制调度方法,其特征在于,当销毁系统时,调用系统销毁工厂,依次关闭数据库模块、集群模块、并发池、服务模块,对系统进行销毁。10.一种基于分布式的服务注册与共识机制调度系统,其特征在于,包括:初始模块,themis系统根据自身需求选择性开启和配置数据库连接和集群同步;自定义模块,定义配置加载器的模式和功能;映射模块,将themis系统基本信息、themis处理数据后返回的结果、用户名口令的结构体、注册进themis的分布式服务模型、注册进themis的分布式服务模型的数据库映射结构体进行统一标准;业务模块,核心业务逻辑层初始化后开启两类核心业务,业务逻辑接口提供的业务操作供前端控制器调用获取返回的数据或操作的结果,底层数据逻辑业务维持themis系统功能的正常运行所需要的必要线程业务;调用模块,themis系统通过核心业务逻辑层对外提供管理共识机制的调用接口,通过调用接口进行共识机制的相关调度与管理,并从业务逻辑接口获取调度的操作结果与数据信息,进行共识机制调度;转发模块,将themis系统在运行过程中收到的http/https请求转发至对应的前端控制器中,同时通过后端路由对项目提供的openapi核心接口进行定义,包括服务通信型api和管理操作型api,向用户提供具体的api操作;异常处理模块,前端控制器收到http/https请求后,对数据进行鉴权、检查、异常处理操作,然后将合法正确的数据提交到对应的业务逻辑层进行处理;注册模块,注册服务线程取出业务逻辑层中的相关信息并发送到注册中心进行服务信息注册;判断模块,themis系统运行过程中,注册中心通过服务心跳线程判断每个服务的存活性,删除不再存活的线程,通过系统状态线程定时获取系统状态信息,并进行记录;处理模块,将themis系统工作时需要异步执行的函数执行任务提交给协程池,协程池负责并发处理各任务;调度模块,若themis系统发生内部异常,异常处理器负责对异常进行捕获处理,根据异常类型做出系统中断处理或相关日志的打印。

技术总结
本发明公开了一种基于分布式的服务注册与共识机制调度方法及系统,通过在服务调度平台中部署多个注册中心节点,利用Raft算法选出主节点负责当前阶段的工作,将单个注册中心的负载压力转移到多个节点上;通过协程池、异常处理模块等多个模块的设计与工作流程的优化提升Themis系统的稳定性与容灾能力;同时对外提供所管理的服务的共识机制调度接口,方便对共识机制的运行进行统一有效的管理,具有良好的可拓展性与方便性。的可拓展性与方便性。的可拓展性与方便性。


技术研发人员:毛伯敏 魏子翔 杜汶睿 冯逸文 李晨 刘家佳 刘洋伯
受保护的技术使用者:西北工业大学
技术研发日:2023.04.10
技术公布日:2023/7/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐