CN115827366A - 适用于隔离装置的集群调度组件及方法 - Google Patents
适用于隔离装置的集群调度组件及方法 Download PDFInfo
- Publication number
- CN115827366A CN115827366A CN202211172563.XA CN202211172563A CN115827366A CN 115827366 A CN115827366 A CN 115827366A CN 202211172563 A CN202211172563 A CN 202211172563A CN 115827366 A CN115827366 A CN 115827366A
- Authority
- CN
- China
- Prior art keywords
- data source
- service module
- source connecting
- connecting piece
- monitoring service
- 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.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种适用于隔离装置的集群调度组件及方法,包括配置中心、二方库、监控服务模块和探活服务模块;二方库包括数据源连接池和拦截器,数据源连接池中的各数据源连接件将业务系统经与之对应的隔离装置连接至数据库;拦截器与数据源连接池和隔离装置相连,将从数据库中获得的数据发送至业务系统,或当判定隔离装置处于故障状态,发送失败心跳至监控服务模块;探活服务模块通过被标记为下线状态的数据源连接件和与之对应的隔离装置连接至测试数据库,当检测出该隔离装置恢复正常,发送成功心跳给监控服务;监控服务模块修改配置中心中的配置文件,对各数据源连接件进行状态标记。本发明能够实现隔离装置的动态调度和管理,提高服务的可靠性。
Description
技术领域
本发明属于隔离设备技术领域,具体涉及一种适用于隔离装置的集群调度组件及方法。
背景技术
在部分特定领域行业内,数据库往往部署在隔离网络当中。当业务系统需要连接数据库时,首先需要连接负载均衡设备,然后再穿透隔离装置连接到内网。由于负载均衡设备存在会话保持机制,当一台隔离装置宕机后,并不能立刻排除该隔离装置,业务的请求会继续落到该宕机的隔离装置上,导致故障持续增长。随着SaaS架构体系发展,用户对于系统的服务质量要求越来越高,由于隔离装置故障或网络异常无法做到完全避免,必然导致现有服务不能做到百分百可靠性。
发明内容
针对上述问题,本发明提出一种适用于隔离装置的集群调度组件及方法,能够实现业务系统的轻松接入,隔离装置的动态调度和管理,有效提高服务的可靠性。
为了实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
第一方面,本发明提供了一种适用于隔离装置的集群调度组件,包括Nacos配置中心,以及与所述Nacos配置中心相连的二方库、监控服务模块和探活服务模块;
所述二方库包括数据源连接池和拦截器,所述数据源连接池包括若干个数据源连接件,各数据源连接件用于将业务系统经与之对应的隔离装置连接至数据库;所述拦截器一端与所述数据源连接池相连,另一端用于与隔离装置相连,将从数据库中获得的数据发送至业务系统,或当判定隔离装置处于故障状态,则发送失败心跳至监控服务模块;
所述探活服务模块通过数据源连接池中被标记为下线状态的数据源连接件和与之对应的隔离装置连接至测试数据库,当检测出该隔离装置恢复正常,则发送成功心跳给监控服务;
所述监控服务模块基于接受到的失败心跳或成功心跳,修改Nacos配置中心中的配置文件,对各数据源连接件进行状态标记。
可选地,所述监控服务模块和探活服务模块均在Nacos配置中心进行注册,并供Nacos配置中心调度。
可选地,所述拦截器为Mybatis插件,采用责任链模式,动态代理组织多个插件;当隔离装置抛出了指定异常,则认为隔离装置出现故障,并通过监控服务模块提供的API接口发送失败心跳给监控服务模块。
可选地,所述监控服务模块内设有熔断窗口和恢复窗口;
对于熔断窗口,当单位时间内失败心跳次数达到临界值时,则所述监控服务模块触发配置修改,进而修改Nacos配置中心配置项中各数据源连接件的状态,之后由Nacos配置中心通知业务系统进行数据源切换操作,帮助业务系统实现隔离装置的故障转移;
对于恢复窗口,当单位时间内成功心跳次数达到临界值时,则所述监控服务模块触发配置修改,进而修改Nacos配置中心配置项中各数据源连接件的状态,之后由Nacos配置中心通知业务系统进行数据源恢复操作,帮助业务系统实现隔离装置的连接恢复。
可选地,所述熔断窗口和恢复窗口的临界值均基于滑动窗口思想来设计。
可选地,所述监控服务模块基于响应式编程框架RxJava实现滑动窗口思想。
可选地,所述监控服务模块提供了两个API接口,所述两个API接口分别用于接收失败心跳和成功心跳。
可选地,所述数据源连接池中的核心连接数、最大连接数、等待时长均由Nacos配置中心配置。
可选地,当业务系统下发的业务请求数量大于数据源连接池中数据源连接件的数量时,则将各业务请求放置在请求队列中排队等待。
第二方面,本发明提供了一种基于第一方面中任一项所述的适用于隔离装置的集群调度组件的调度方法,包括:
利用二方库接收业务系统发送的业务请求;
从二方库中数据源连接池中选择合适的数据源连接件,并利用该数据源连接件将业务系统经与之对应的隔离装置连接至数据库;
当拦截器判定隔离装置处于正常状态,则将从数据库中获得的数据发送至业务系统;
当拦截器判定隔离装置处于故障状态,则发送失败心跳至监控服务模块;
利用探活服务模块定时通过数据源连接池中被标记为下线状态的数据源连接件和与之对应的隔离装置连接至测试数据库,当检测出该隔离装置恢复正常,则发送成功心跳给监控服务;
利用监控服务模块基于接受到的失败心跳或成功心跳,修改配置中心中的配置文件,对各数据源连接件进行状态标记。
与现有技术相比,本发明的有益效果:
本发明提出一种适用于隔离装置的集群调度组件及方法,能够实现业务系统的轻松接入,隔离装置的动态调度和管理,有效提高服务的可靠性。
附图说明
为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明,其中:
图1为本发明一种实施例的用于隔离装置的集群调度组件的工作流程示意图;
图2为本发明一种实施例的监控服务模块滑动窗口操作步骤。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明的保护范围。
下面结合附图对本发明的应用原理作详细的描述。
实施例1
本发明实施例中提供了一种适用于隔离装置的集群调度组件,如图1所示,包括Nacos配置中心,以及与所述Nacos配置中心相连的二方库、监控服务模块和探活服务模块;
所述二方库包括数据源连接池和拦截器,所述数据源连接池包括若干个数据源连接件,各数据源连接件用于将业务系统经与之对应的隔离装置连接至数据库;所述拦截器一端与所述数据源连接池相连,另一端用于与隔离装置相连,将从数据库中获得的数据发送至业务系统,或当判定隔离装置处于故障状态,则发送失败心跳至监控服务模块;
所述探活服务模块通过数据源连接池中被标记为下线状态的数据源连接件和与之对应的隔离装置连接至测试数据库,当检测出该隔离装置恢复正常,则发送成功心跳给监控服务;
所述监控服务模块基于接受到的失败心跳或成功心跳,修改Nacos配置中心中的配置文件,对各数据源连接件进行状态标记。
基于本发明实施例中的集群调度组件,能够实现业务系统的轻松接入,隔离装置的动态调度和管理,有效提高服务的可靠性。在具体实施过过程中,使用隔离装置的业务系统通过maven依赖或其他方式引入所述二方库,业务系统通过所述二方库连接调度隔离装置集群硬件设备,所述二方库以jar包形式供k8s集群中其他业务系统引用,并保证集群中容器间网络的连通性,所述监控服务模块和探活服务模块均部署于k8s集群中,能够有效解决业务系统对于负载均衡设备的依赖,屏蔽不同版本隔离装置的差异性。
数据库连接是一种关键的有限的昂贵的资源,在用户交互频繁的业务系统中显得更为突出。每个数据库连接对象均对应一个物理数据库连接,如果每次操作都打开一个物理连接,使用完都关闭连接,这样会造成业务系统的性能低下。为此,本发明实施例中提出了数据库连接池,在业务系统启动时建立足够的数据库连接对象,并将这些数据库连接对象组成一个连接池,由业务系统动态地对数据库连接池中的数据库连接对象进行申请、使用和释放。当业务系统发送的请求数量大于数据库连接池中连接数时,应该在请求队列中排队等待。并且业务系统可以根据连接池中连接对象的使用率,动态增加或减少池中的连接数。连接池技术安全高效地复用了数据库资源,避免了数据库连接频繁建立、销毁的资源开销,提高了业务系统的服务效率,能够支持更多的客户服务。通过灵活配置连接池核心连接数、最大连接数、等待时长等配置,调整组件二方库的容忍度和适配度。
本发明中二方库使用轮询的策略实现负载均衡到每个数据源节点,使用软负载替代硬负载,节约了昂贵的设备成本。此外不用去关注数据源配置信息,节约开发人力成本。
在本发明实施例的一种具体实施方式中,所述拦截器为Mybatis插件。Mybatis插件采用责任链模式,允许动态织入多个拦截器,这些拦截器可以改变Mybatis执行过程中的默认行为。Mybatis允许使用拦截器来拦截的方法调用包括:拦截执行器的方法、拦截参数的处理、拦截结果集的处理、拦截Sql语法和会话构建的处理。通过该种方式,业务系统可以在映射语句执行过程中的某一点进行拦截,进行自己的业务处理。本发明二方库中配置了拦截执行器的方法,如果执行过程中隔离装置抛出了指定异常,则认为隔离装置出现故障,然后通过监控服务模块提供的API接口,发送失败心跳给监控服务模块。
在本发明实施例的一种具体实施方式中,所述nacos配置中心作为统一的服务注册和配置中心。业务系统初始化时,读取nacos配置中心数据源配置,初始化数据源连接池,在正常运行时监听nacos配置中心中的配置文件的修改动作,配置一旦有修改,则会实时动态刷新数据源连接池。nacos配置中心还作为注册中心,负责支撑业务系统、监控服务模块、探活服务模块间的服务注册和调度。
在本发明实施例的一种具体实施方式中,所述监控服务模块基于滑动窗口思想开发阈值系统(如图2所示),内部保持了一个熔断窗口(10s)和一个恢复窗口(1min),主要提供了两个API接口,分别用于接收来自业务系统的失败心跳和来自探活服务模块的成功心跳。所述监控服务模块内设有熔断窗口和恢复窗口;
对于熔断窗口,当单位时间内请求数达到预设固定值并且失败率(失败心跳数除以总请求数)达到阈值时,则认为隔离装置恢复正常,则所述监控服务模块触发配置修改,进而修改Nacos配置中心配置项中各数据源连接件的状态,之后由Nacos配置中心通知业务系统进行数据源切换操作,帮助业务系统实现隔离装置的故障转移;
对于恢复窗口,当单位时间内请求数达到预设固定值并且成功率(成功心跳数除以总请求数)达到阈值时,则认为隔离装置恢复正常,监控服务模块触发配置修改,进而修改Nacos配置中心配置项中各数据源连接件的状态,之后由Nacos配置中心通知业务系统进行数据源恢复操作,帮助业务系统实现隔离装置的连接恢复。
所述熔断窗口和恢复窗口的临界值均基于滑动窗口思想来设计。滑动窗口机制的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。
滑动窗口机制原先是用来改善吞吐量的一种技术,本发明实施例中用来控制随着时间的流逝,在任何单位时间里接收窗口收到的次数,达到特定阈值时触发数据源(即隔离装置)下线。
监控服务模块基于响应式编程框架RxJava实现滑动窗口思想,而响应式编程是一种基于异步数据流概念的编程模式,响应式中的核心就是事件响应,而流就是一个按照时间进行排序的事件序列。RxJava里面的事件是基于观察者模式,事件流将从上往下,从订阅源传递到观察者。超过固定阈值则判定该数据源连接失效,立即做故障转移操作,保证业务系统恢复正常。
实施例2
基于与实施例1相同的发明构思,本发明实施例中提供了一种基于实施例1中任一项所述的适用于隔离装置的集群调度组件的调度方法,包括以下步骤:
(1)利用二方库接收业务系统发送的业务请求;
(2)从二方库中数据源连接池中选择合适的数据源连接件,并利用该数据源连接件将业务系统经与之对应的隔离装置连接至数据库;
(3)当拦截器判定隔离装置处于正常状态,则将从数据库中获得的数据发送至业务系统;
(4)当拦截器判定隔离装置处于故障状态,则发送失败心跳至监控服务模块;
(5)利用探活服务模块定时通过数据源连接池中被标记为下线状态的数据源连接件和与之对应的隔离装置连接至测试数据库,当检测出该隔离装置恢复正常,则发送成功心跳给监控服务;
(6)利用监控服务模块基于接受到的失败心跳或成功心跳,修改配置中心中的配置文件,对各数据源连接件进行状态标记。
以上描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (10)
1.一种适用于隔离装置的集群调度组件,其特征在于:包括Nacos配置中心,以及与所述Nacos配置中心相连的二方库、监控服务模块和探活服务模块;
所述二方库包括数据源连接池和拦截器,所述数据源连接池包括若干个数据源连接件,各数据源连接件用于将业务系统经与之对应的隔离装置连接至数据库;所述拦截器一端与所述数据源连接池相连,另一端用于与隔离装置相连,将从数据库中获得的数据发送至业务系统,或当判定隔离装置处于故障状态,则发送失败心跳至监控服务模块;所述探活服务模块通过数据源连接池中被标记为下线状态的数据源连接件和与之对应的隔离装置连接至测试数据库,当检测出该隔离装置恢复正常,则发送成功心跳给监控服务;
所述监控服务模块基于接受到的失败心跳或成功心跳,修改Nacos配置中心中的配置文件,对各数据源连接件进行状态标记。
2.根据权利要求1所述的一种适用于隔离装置的集群调度组件,其特征在于:所述监控服务模块和探活服务模块均在Nacos配置中心进行注册,并供Nacos配置中心调度。
3.根据权利要求1所述的一种适用于隔离装置的集群调度组件,其特征在于:所述拦截器为Mybatis插件,采用责任链模式,动态代理组织多个插件;当隔离装置抛出了指定异常,则认为隔离装置出现故障,并通过监控服务模块提供的API接口发送失败心跳给监控服务模块。
4.根据权利要求1所述的一种适用于隔离装置的集群调度组件,其特征在于:所述监控服务模块内设有熔断窗口和恢复窗口;
对于熔断窗口,当单位时间内失败心跳次数达到临界值时,则所述监控服务模块触发配置修改,进而修改Nacos配置中心配置项中各数据源连接件的状态,之后由Nacos配置中心通知业务系统进行数据源切换操作,帮助业务系统实现隔离装置的故障转移;对于恢复窗口,当单位时间内成功心跳次数达到临界值时,则所述监控服务模块触发配置修改,进而修改Nacos配置中心配置项中各数据源连接件的状态,之后由Nacos配置中心通知业务系统进行数据源恢复操作,帮助业务系统实现隔离装置的连接恢复。
5.根据权利要求4所述的一种适用于隔离装置的集群调度组件,其特征在于:所述熔断窗口和恢复窗口的临界值均基于滑动窗口思想来设计。
6.根据权利要求5所述的一种适用于隔离装置的集群调度组件,其特征在于:所述监控服务模块基于响应式编程框架RxJava实现滑动窗口思想。
7.根据权利要求4所述的一种适用于隔离装置的集群调度组件,其特征在于:所述监控服务模块提供了两个API接口,所述两个API接口分别用于接收失败心跳和成功心跳。
8.根据权利要求1所述的一种适用于隔离装置的集群调度组件,其特征在于:所述数据源连接池中的核心连接数、最大连接数、等待时长均由Nacos配置中心配置。
9.根据权利要求1所述的一种适用于隔离装置的集群调度组件,其特征在于:当业务系统下发的业务请求数量大于数据源连接池中数据源连接件的数量时,则将各业务请求放置在请求队列中排队等待。
10.一种基于权利要求1-9中任一项所述的适用于隔离装置的集群调度组件的调度方法,其特征在于,包括:
利用二方库接收业务系统发送的业务请求;
从二方库中数据源连接池中选择合适的数据源连接件,并利用该数据源连接件将业务系统经与之对应的隔离装置连接至数据库;
当拦截器判定隔离装置处于正常状态,则将从数据库中获得的数据发送至业务系统;
当拦截器判定隔离装置处于故障状态,则发送失败心跳至监控服务模块;
利用探活服务模块定时通过数据源连接池中被标记为下线状态的数据源连接件和与之对应的隔离装置连接至测试数据库,当检测出该隔离装置恢复正常,则发送成功心跳给监控服务;
利用监控服务模块基于接受到的失败心跳或成功心跳,修改配置中心中的配置文件,对各数据源连接件进行状态标记。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211172563.XA CN115827366A (zh) | 2022-09-26 | 2022-09-26 | 适用于隔离装置的集群调度组件及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211172563.XA CN115827366A (zh) | 2022-09-26 | 2022-09-26 | 适用于隔离装置的集群调度组件及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827366A true CN115827366A (zh) | 2023-03-21 |
Family
ID=85523913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211172563.XA Pending CN115827366A (zh) | 2022-09-26 | 2022-09-26 | 适用于隔离装置的集群调度组件及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827366A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573425A (zh) * | 2023-06-06 | 2024-02-20 | 扬州万方科技股份有限公司 | 一种基于k8s集群自适应时间跳变的容器自恢复方法及系统 |
-
2022
- 2022-09-26 CN CN202211172563.XA patent/CN115827366A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573425A (zh) * | 2023-06-06 | 2024-02-20 | 扬州万方科技股份有限公司 | 一种基于k8s集群自适应时间跳变的容器自恢复方法及系统 |
CN117573425B (zh) * | 2023-06-06 | 2024-07-02 | 扬州万方科技股份有限公司 | 一种基于k8s集群自适应时间跳变的容器自恢复方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7426654B2 (en) | Method and system for providing customer controlled notifications in a managed network services system | |
US8275885B2 (en) | Method, apparatus and system for processing a series of service messages | |
US8676945B2 (en) | Method and system for processing fault alarms and maintenance events in a managed network services system | |
US7289988B2 (en) | Method and system for managing events | |
US7469405B2 (en) | System and method for scheduling execution of cross-platform computer processes | |
US7525422B2 (en) | Method and system for providing alarm reporting in a managed network services environment | |
EP1615378B1 (en) | NMS with multi-server events processing | |
JP3837291B2 (ja) | アプリケーション独立形メッセージングシステム | |
CN103927218B (zh) | 事件分发方法及系统 | |
US20060233310A1 (en) | Method and system for providing automated data retrieval in support of fault isolation in a managed services network | |
US8898520B1 (en) | Method of assessing restart approach to minimize recovery time | |
US10924326B2 (en) | Method and system for clustered real-time correlation of trace data fragments describing distributed transaction executions | |
CN108089915A (zh) | 基于消息队列的业务控件化处理的方法及系统 | |
CN115827366A (zh) | 适用于隔离装置的集群调度组件及方法 | |
EP0398649B1 (en) | Remote interrupt processing | |
CN113821363A (zh) | 一种进程间通讯方法及系统 | |
CN110365786A (zh) | 作业处理系统、异步作业调度方法和计算机设备 | |
CN107395768A (zh) | 用于文件安全传输的双机自适应负载均衡方法 | |
CN115220995A (zh) | 一种基于agent探针的微服务全链路分析方法 | |
CN112769639B (zh) | 一种并行下发配置信息的方法及装置 | |
CN113672452A (zh) | 一种数据采集任务的运行监控方法、系统 | |
US11016807B2 (en) | Intermediary system for data streams | |
CN105007143A (zh) | 一种实现呼叫保存和恢复的方法及系统 | |
CN106375447A (zh) | 基于消息中间件的服务切换方法及装置 | |
CN116361016B (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 |