集群动态多数据源配置方法、装置及可读介质与流程

文档序号:36367268发布日期:2023-12-14 07:28阅读:38来源:国知局
集群动态多数据源配置方法与流程

本发明涉及数据处理,具体涉及一种集群动态多数据源配置方法、装置及可读介质。


背景技术:

1、在一些业务场景中,应用服务需要同时连接多个不同的数据库,即多个数据源,以实现运行过程中切换不同数据源,操作或读取不同数据库数据,如常见的报表系统,数据迁移系统等。现有的多数据源技术,多数采用静态文件配置方式加基于内存方式动态修改,在单个应用上使用快捷方便。但是在分布式广泛运用的今天,一个应用的集群环境,即多个相同的应用服务,运行在不同服务器上作为节点组成一个服务集群,同时使用多数据源,存在以下几个缺点:

2、1、必须为每个节点配置相同配置,当应用需要删除或者增加数据源,必须同时修改集群中所有节点配置文件,过程十分繁琐,并且需要重启服务才能生效,导致业务系统停机中断。

3、2、多数据源技术虽然提供简单管理接口,可以动态增加或者删除数据源配置接口,可以解决重启生效问题,但是一个节点接口只能针对单个节点修改,其他节点无法感知并且更新多数据源配置,导致集群多数据源状态不一致。

4、3、即使为每个节点手动修改多数据源配置,任意集群节点因为不可控因素故障重启,无法再次感知到之前变动配置也会导致多数据源状态不一致,从而影响系统功能的稳定性。

5、4、若将动态数据源保存到共同配置数据库中,每个节点也可以达到同步状态和持久化不丢失效果,但是必须每次业务请求都要执行是否有数据源变化的逻辑,导致所有请求增加额外开销和耗时,性能差。


技术实现思路

1、针对上述提到的技术问题。本申请的实施例的目的在于提出了一种集群动态多数据源配置方法、装置及可读介质,来解决以上背景技术部分提到的技术问题。

2、第一方面,本发明提供了一种集群动态多数据源配置方法,包括以下步骤:

3、响应于确定集群中的第一节点完成多数据源配置初始化,获取第一节点的本地多数据源配置数据,启动监听多数据源变化事件;

4、响应于确定移除或增加集群中的第二节点所对应的至少一个数据源,生成集群多数据源配置数据和多数据源变化事件并发送至存储介质;

5、响应于第一节点监听到多数据源变化事件,从存储介质中获取配置数据;

6、响应于确定配置数据中存在集群多数据源配置数据,根据集群多数据源配置数据和第一节点的本地多数据源配置数据进行校准对第一节点的本地多数据源配置数据进行更新配置。

7、作为优选,根据集群多数据源配置数据和第一节点的本地多数据源配置数据进行校准对第一节点的本地多数据源配置数据进行更新配置,具体包括:

8、分别将第一节点的本地多数据源配置数据和集群多数据源配置数据中的driver-class-name、url、username、password按顺序拼接得到第一字符串和第二字符串,将第一字符串和第二字符串分别输入md5算法计算得到第一md5值和第二md5值;

9、判断第一md5值和第二md5值是否相同,若不相同,则将第一节点的本地多数据源配置数据和集群多数据源配置数据进行差集运算,删除第一节点的本地多数据源配置数据中相较于集群多数据源配置数据中多出的数据源,添加集群多数据源配置数据中相较于第一节点的本地多数据源配置数据中多出的数据源。

10、作为优选,第一节点的多数据源配置初始化过程具体包括:从yml文件中读取第一节点的本地多数据源配置数据。

11、作为优选,启动监听多数据源变化事件,具体包括:

12、创建spring框架,建立动态数据源通道,调用消息监听工具获取多数据源变化事件,并触发动态数据源通道从存储介质中获取对应的集群多数据源配置数据。

13、作为优选,还包括:

14、响应于接收到移除或增加集群中的第二节点所对应的至少一个数据源的指令,根据指令移除或增加集群中的第二节点所对应的至少一个数据源,得到第二节点中最新的本地多数据源配置数据。

15、作为优选,生成集群多数据源配置数据和多数据源变化事件并发送至存储介质,具体包括:

16、将第二节点中最新的本地多数据源配置数据作为集群多数据源配置数据推送到存储介质;并通过动态数据源通道将多数据源变化事件发送至存储介质。

17、作为优选,还包括:

18、响应于确定配置数据中不存在集群多数据源配置数据,将第一节点的本地多数据源配置数据推送至存储介质。

19、第二方面,本发明提供了一种集群动态多数据源配置装置,包括以下步骤:

20、监听模块,被配置为响应于确定集群中的第一节点完成多数据源配置初始化,获取第一节点的本地多数据源配置数据,启动监听多数据源变化事件;

21、变化模块,被配置为响应于确定移除或增加集群中的第二节点所对应的至少一个数据源,生成集群多数据源配置数据和多数据源变化事件并发送至存储介质;

22、数据获取模块,被配置为响应于第一节点监听到多数据源变化事件,从存储介质中获取配置数据;

23、校准模块,被配置为响应于确定配置数据中存在集群多数据源配置数据,根据集群多数据源配置数据和第一节点的本地多数据源配置数据进行校准对第一节点的本地多数据源配置数据进行更新配置。

24、第三方面,本发明提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式描述的方法。

25、第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。

26、相比于现有技术,本发明具有以下有益效果:

27、(1)本发明提出的集群动态多数据源配置方法能够实现集群中任意节点动态增减数据源配置,其他所有节点自动联动同步动态更新,无需人为介入,解决静态配置繁琐问且需要重启服务问题。

28、(2)本发明提出的集群动态多数据源配置方法当集群中任意节点重启时,能够通过监听存储介质及本节点的本地多数据源配置数据,自动比对分析获取数据源变化,还原集群多数据源的一致状态。

29、(3)本发明提出的集群动态多数据源配置方法保留了集群高可用特性,也保证了多数据源的一致性,很大提升微服务集群下使用多数据源易用性,有较高的推广价值。



技术特征:

1.一种集群动态多数据源配置方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的集群动态多数据源配置方法,其特征在于,所述根据所述集群多数据源配置数据和所述第一节点的本地多数据源配置数据进行校准对所述第一节点的本地多数据源配置数据进行更新配置,具体包括:

3.根据权利要求1所述的集群动态多数据源配置方法,其特征在于,所述第一节点的多数据源配置初始化过程具体包括:从yml文件中读取所述第一节点的本地多数据源配置数据。

4.根据权利要求1所述的集群动态多数据源配置方法,其特征在于,所述启动监听多数据源变化事件,具体包括:

5.根据权利要求4所述的集群动态多数据源配置方法,其特征在于,还包括:

6.根据权利要求5所述的集群动态多数据源配置方法,其特征在于,所述生成集群多数据源配置数据和多数据源变化事件并发送至存储介质,具体包括:

7.根据权利要求1所述的集群动态多数据源配置方法,其特征在于,还包括:

8.一种集群动态多数据源配置装置,其特征在于,包括以下步骤:

9.一种电子设备,包括:

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。


技术总结
本发明公开了一种集群动态多数据源配置方法、装置及可读介质,该方法包括:响应于确定集群中的第一节点完成多数据源配置初始化,获取第一节点的本地多数据源配置数据,启动监听多数据源变化事件;响应于确定移除或增加集群中的第二节点所对应的至少一个数据源,生成集群多数据源配置数据和多数据源变化事件并发送至存储介质;响应于第一节点监听到多数据源变化事件,从存储介质中获取配置数据;响应于确定配置数据中存在集群多数据源配置数据,根据集群多数据源配置数据和第一节点的本地多数据源配置数据进行校准对第一节点的本地多数据源配置数据进行更新配置,能够实现所有节点的数据源同步动态更新,解决静态配置繁琐问且需要重启服务问题。

技术研发人员:林荣晰,蓝哲,江振华,王远春,江智明
受保护的技术使用者:智业软件股份有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1