CN112015744A - 配置数据访问方法、装置、设备、配置中心及存储介质 - Google Patents
配置数据访问方法、装置、设备、配置中心及存储介质 Download PDFInfo
- Publication number
- CN112015744A CN112015744A CN202010831215.3A CN202010831215A CN112015744A CN 112015744 A CN112015744 A CN 112015744A CN 202010831215 A CN202010831215 A CN 202010831215A CN 112015744 A CN112015744 A CN 112015744A
- Authority
- CN
- China
- Prior art keywords
- configuration
- database
- service
- slave
- machine room
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000003860 storage Methods 0.000 title claims abstract description 9
- 230000001960 triggered effect Effects 0.000 claims abstract description 34
- 238000001514 detection method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 80
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了配置数据访问方法、装置、设备、配置中心及存储介质。其中,一种配置数据访问方法应用于配置管理服务,配置管理服务部署于至少两个第一机房内,配置服务部署于至少两组第二机房内,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,主数据库基于预设一致性协议保证数据强一致,检测到配置数据写入事件被触发后,若探测到对应的目标主数据库处于可写状态,则针对其进行配置数据写入操作,检测到目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息。本发明实施例提供的技术方案,可以不依赖其他组件而在配置中心内部实现智能探测可写主库并进行配置数据的高可靠性写入操作。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及配置数据访问方法、装置、设备、配置中心及存储介质。
背景技术
随着微服务架构的发展,配置中心越来越成为整个服务治理体系中核心基础组件之一。服务治理架构体系中的很多其他组件,需要依赖配置中心实现自动故障转移、高可用以及限流熔断等特性;而各个业务***,需要依赖配置中心实现运行时动态扩展和调整行为的能力。因此,配置中心需要具备较高的可用性以及有效保证数据的一致性,同时由于配置中心作为底层组件,需要尽量减少对其他***或组件的依赖。
在业务部署范围较大(如需要跨越国家或地区)的情况下,要实现高可用性及数据一致性难度更是大大增加。配置中心需要管理的配置数据的种类以及数据量非常庞大,一般需要存储在对应的数据库内,也即配置中心至少要依赖于数据库这一外部***,因此,实现数据库的高可用和数据一致性非常重要。相关技术中,一般采用多个数据库进行数据存储,包括至少一个主库和至少一个备库,并采用一定的部署方案来保证高可用和数据一致性。以常见的关系型数据库MySQL为例,业界常用MySQL的高可用部署方案有主主复制管理器(Master-Master replication manager for Mysql,MMM)、主高可用(Master HighAvailability,MHA)以及MySQL群组复制(MySQL Group Replication,MGR),但是直接使用这些方案都存在一些问题,MMM和MHA都存在数据丢失的风险,MHA和MGA需要引入其他组件或者中间件来提供统一入口,而配置中心作为底层的组件不希望依赖其他组件,三者的高可用都是针对主库的,并不适合在较大区域范围内部署从库的情况下直接使用。
因此,现有的配置中心的实现方案仍不够完善,需要改进。
发明内容
本发明实施例提供了配置数据访问方法、装置、设备、配置中心及存储介质,可以优化微服务架构中配置中心的配置数据访问方案。
第一方面,本发明实施例提供了一种配置数据访问方法,应用于微服务架构中的配置中心的配置管理服务,所述配置中心包括配置中心服务端和配置中心客户端,所述配置中心服务端包括所述配置管理服务和配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述方法包括:
检测到配置数据写入事件被触发;
若探测到所在第一机房对应的目标主数据库处于可写状态,则针对所述目标主数据库进行配置数据写入操作,其中,处于可写状态的主数据库基于所述预设一致性协议确定;
检测到所述目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息。
第二方面,本发明实施例提供了一种配置数据访问方法,应用于微服务架构中的配置中心的配置服务,所述配置中心包括配置中心服务端和配置中心客户端,所述配置中心服务端包括配置管理服务和所述配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述方法包括:
检测到配置数据读取事件被触发;
探测出处于可读状态的备选从数据库;
从所述备选从数据库中挑选出目的从数据库,并针对所述目的从数据库进行配置数据读取操作,其中,所述目的从数据库所在机房与当前配置服务所在第二机房的第一距离小于其他备选从数据库所在机房与当前配置服务所在机房的第二距离。
第三方面,本发明实施例提供了一种配置数据访问装置,应用于微服务架构中的配置中心的配置管理服务,所述配置中心包括配置中心服务端和配置中心客户端,所述配置中心服务端包括所述配置管理服务和配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述装置包括:
写入事件监测模块,用于检测配置数据写入事件是否被触发;
写入操作模块,用于在检测到配置数据写入事件被触发后,若探测到所在第一机房对应的目标主数据库处于可写状态,则针对所述目标主数据库进行配置数据写入操作,其中,处于可写状态的主数据库基于所述预设一致性协议确定;
写入操作反馈模块,用于检测到所述目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息。
第四方面,本发明实施例提供了一种配置数据访问装置,应用于微服务架构中的配置中心的配置服务,所述配置中心包括配置中心服务端和配置中心客户端,所述配置中心服务端包括配置管理服务和所述配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述装置包括:
读取事件触发检测模块,用于检测配置数据读取事件是否被触发;
状态探测模块,用于在检测到配置数据读取事件被触发后,探测出处于可读状态的备选从数据库;
读取操作模块,用于从所述备选从数据库中挑选出目的从数据库,并针对所述目的从数据库进行配置数据读取操作,其中,所述目的从数据库所在机房与当前配置服务所在第二机房的第一距离小于其他备选从数据库所在机房与当前配置服务所在机房的第二距离。
第五方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的配置数据访问方法。
第六方面,本发明实施例提供了一种微服务架构中的配置中心,包括配置中心服务端和配置中心客户端,所述配置中心服务端包括所述配置管理服务和配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述配置管理服务基于本发明实施例第一方面所述的配置数据访问方法进行配置数据访问;
所述配置服务基于本发明实施例第二方面所述的配置数据访问方法进行配置数据访问。
第七方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的配置数据访问方法。
本发明实施例中提供的配置数据访问方案,微服务架构中的配置中心包括配置中心服务端和配置中心客户端,配置中心服务端包括配置管理服务和配置服务,配置管理服务部署于至少两个第一机房内,每个第一机房配备一个主数据库,所有主数据库基于预设一致性协议保证数据强一致,第一机房之间的网络质量满足预设质量要求,可以保证第一机房之间的通信可靠性,同时,也能够保证主库之间的同步性能以及主库的高可用性,配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第二机房配备一个从数据库,主数据库和从数据库包含于配置中心对应的数据库集群中,在上述配置中心的架构基础上,配置管理服务检测到配置数据写入事件被触发后,主动探测所在第一机房对应的目标主数据库是否处于可写状态,若处于,则针对目标主数据库进行配置数据写入操作,而处于可写状态的主数据库是基于预设一致性协议确定的,也即预设一致性协议中定义的主,以便能够基于该协议保障主库之间数据强一致,检测到目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息,从而可以不依赖其他组件而在配置中心内部实现智能探测可写主库并进行配置数据的高可靠性写入操作,且所有主数据库基于预设一致性协议保证数据强一致,也能够保证主库的高可用和数据一致性,避免发生因数据丢失而影响业务的情况。
附图说明
图1为本发明实施例提供的一种配置数据访问方法所适用的应用场景的场景架构图;
图2为本发明实施例提供的一种配置中心部署方案示意图;
图3为本发明实施例提供的一种数据库集群部署方案示意图;
图4为本发明实施例提供的一种配置数据访问方法的流程示意图;
图5为本发明实施例提供的另一种配置数据访问方法的流程示意图;
图6为本发明实施例提供的一种智能数据源实现方式示意图;
图7为本发明实施例提供的一种配置数据访问装置的结构框图;
图8为本发明实施例提供的另一种配置数据访问装置的结构框图;
图9为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本实施例中主要针对微服务架构中的配置中心进行改进。微服务的基本思想在于考虑围绕着业务领域组件来创建应用程序,这些应用程序可独立地进行开发、管理和加速,在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。随着微服务架构中应用程序功能的日益复杂,程序的配置日益增多,如各种功能的开关、参数的配置以及服务器的地址等等,并且对配置的期望也越来越高,配置修改后实时生效、灰度发布、分环境或分集群管理配置、完善的权限机制以及审核机制等等,随着采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相互之间的调用复杂度成指数升高,每次投产或者上线新的项目时工作量不断加大,因此需要引用配置中心治理。
图1为本发明实施例提供的一种配置数据访问方法所适用的应用场景的场景架构图。具体的,参考图1,该应用场景中可以包括配置中心(Config Center)100、数据库(DataBase,DB)200和业务***300。其中,配置中心100包括配置中心服务端101和配置中心客户端(Config Client)102,配置中心服务端101包括配置管理服务(Config AdminService)1011和配置服务(Config Service)1012,数据库200包括主数据库(简称主库)201和从数据库(简称从库)202。配置中心100可理解为提供分布式配置服务的一整套***,可包括配置修改、发布以及推送等功能,配置管理服务1011、配置服务1012和配置中心客户端102可理解为配置中心100中的子模块。其中,配置服务1012子模块一般是一个只读服务,为客户端提供配置的拉取和推送服务;配置管理服务1011子模块可以提供配置管理服务,包括配置查看、修改以及发布等功能;配置中心客户端102可以是提供给业务***使用的软件开发工具包(Software Development Kit,SDK),与配置服务1012交互实现配置拉取和推送功能。配置中心100需要具备较高的可用性以及有效保证数据的一致性,同时由于配置中心100作为底层组件,需要尽量减少对其他***或组件的依赖,配置中心100需要管理的配置数据的种类以及数据量非常庞大,一般需要存储在对应的数据库200内,也即配置中心至少要依赖于数据库200这一外部***。考虑到数据可靠性等因素,一般设置有主数据库201和从数据库202,配置管理服务1011可针对主数据库201进行配置修改等写入操作,主数据库201和从数据库202进行数据同步,配置服务1012可以针对从数据库202进行配置读取操作,从而向配置中心客户端102提供配置数据。
随着业务范围的不断扩大,形成多个业务区域(如以大洲、国家、地区或城市等进行划分),需要在较大的地域范围内部署搭载配置中心各子模块或数据库的设备(如服务器等),存放服务器的机房分布范围广,每两个机房之间的通信距离也大大增加,因此网络环境变得愈加不可靠,配置中心实现方案的可靠性和可用性越来越难以保障。
现有技术中,以常见的MySQL为例,常用的高可用部署方案有MMM、MHA以及MGR。其中,MMM是一套支持双主故障切换和双主日常管理的脚本程序,由于MMM无法完全的保证数据一致性,所以MMM仅适用于对数据的一致性要求不是很高的场景;MHA是MySQL高可用方面一个相对成熟的解决方案,该软件由两部分组成,包括MHA Manager(管理节点)和MHA Node(数据节点),MHA Manager会定时探测集群中的master(主)节点,当master出现故障时,它可以自动将最新数据的slave(从)提升为新的master,然后将所有其他的slave重新指向新的master;MGR是基于现有的MySQL架构实现的复制插件,使用Paxos协议实现多个节点间数据一致性,MGR支持单主模式和多主模式。上述三种现有方案中,MMM和MHA都存在数据丢失的风险,MHA和MGA需要引入其他组件(如VIP组件)或者数据库中间件来提供统一入口,依赖额外的运维工具或者中间件实现高可用,而数据库中间件等都是依赖配置中心来实现高可用的,因此,会形成循环依赖,而配置中心作为底层的组件不希望依赖其他组件。另外,上述三种方案的高可用都是针对主库的,并不适合在较大区域范围内部署从库的情况下直接使用。
本发明实施例中的配置中心包括配置中心服务端和配置中心客户端,所述配置中心服务端包括所述配置管理服务和配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致。其中,强一致可以指任何一次读都能读到某个数据的最近一次写的数据,或者说,在任意时刻,所有节点中的数据是一样的,例如,对于关系型数据库,要求更新过的数据后续的访问都能看到。
示例性的,第一机房的具体数量不做限定,也即配置管理服务的部署数量不做限定,可以根据实际情况(如业务区域的数量)进行设置,例如可以是三个,一个配置管理服务具体可运行于对应的第一机房中的服务器等计算机设备中。每个第一机房配备一个主数据库,也即主库的数量与第一机房的数量可以是相等的,也即主库的数量可以与配置管理服务的部署数量相等,配置管理服务可以针对其对应的主库进行配置数据访问,主库所在设备和配置管理服务所在设备可以相同。主数据库和从数据库的类型一般一致,具体类型不做限定,例如可以是如MySQL等关系型数据库,还可以是Redis等非关系型数据库等。所有主库基于预设一致性协议保证数据强一致,因此,至少两个第一机房之间的网络质量满足预设质量要求,具体的,可以是所有第一机房中的任意两个第一机房之间的网络质量满足预设质量要求,也可以是所有第一机房中的每个第一机房均存在另外一个第一机房与当前第一机房之间的网络质量满足预设质量要求。其中,网络质量可采用丢包率或往返时间(Round-Trip time,RTT)等指标进行衡量,所有第一机房可部署在同一个城市中,这样,第一机房之间可以采用城域网连接,保证相互之间的网络通信是可靠的。预设一致性协议例如可以是Paxos协议,当然,还可以是其他的可以保证数据库之间数据强一致的协议。通过预设一致性协议可以在多个主库中选举出一个或多个主节点用于数据写入,也即,可以保证一个或多个主节点可以用于数据写入,其他主库自动成为主节点的从节点,在向主节点写入配置数据时,主节点将所写入的配置数据同步到从节点,也即从节点可实现配置数据的被动写入,当主节点和从节点的配置数据写入操作均完成后,预设一致性协议才会确认写入操作成功,从而可以保证主库之间的数据强一致。现有方案中的MMM和MHA,主从节点之间或双主节点之间的数据同步是异步的,也就是说在一次写操作过程中,只要有一个数据库完成本次写入,则可进行下一次写入,若此时该数据库出现问题,而其他数据库还未来得及同步,就会导致数据丢失。而本发明实施例中,多个主库之间基于预设一致性协议保证数据强一致,不会产生因其中一个主库出现问题而导致数据丢失的情况。
示例性的,在具体的业务区域部署从库,也即从数据库。业务区域的具体划分规则以及业务区域的数量可根据实际业务范围以及其他相关因素确定,每个业务区域内可以部署一组第二机房,不同组内的第二机房的数量可以相同也可以不同,具体数量不做限定。第二机房的具体数量不做限定,也即配置服务的部署数量不做限定,一个配置服务具体可运行于对应的第二机房中的服务器等计算机设备中。每个第二机房配备一个从数据库,从库的数量与第二机房的数量可以是相等的,也即从库的数量可以与配置服务的部署数量相等,配置服务可以针对其对应的从库进行配置数据访问,从库所在设备和配置服务所在设备可以相同。
下面对配置中心部署方案以及数据库集群部署方案进行示意性说明。以主数据库和从数据库均为MySQL数据库,预设一致性协议为Paxos协议为例,业务区域按照大洲划分,如划分为亚洲区、美洲区和欧洲区,第一机房数量为三个,每个第一机房对应一个业务区域,每个业务区域内部署一组第二机房,每组第二机房的数量为三个。
图2为本发明实施例提供的一种配置中心部署方案示意图,如图2所示,Portal(入口)可理解为工作人员操作的人机交互界面,工作人员可以利用Portal根据Admin Service(也即配置管理服务Config Admin Service)所在设备地址信息,如网际协议(InternetProtocol)IP地址和端口号(port),来调用Admin Service进行配置数据的写入等访问操作,Admin Service可将配置数据写入到对应的主数据库中,三个主库可构成MGR Group(组),MGR Group基于Paxos协议实现数据强一致,该部署方案中Portal和Admin Service主要提供配置管理、写入功能以及读写主库,可以不需要全球化部署。Config Service为业务实现配置拉取和实时推送,可用性要求高,全球化部署,可以就近选取从库进行配置数据的读取,每个业务区域均设置有相应的从库,如三个亚洲从库、三个欧洲从库和三个美洲从库。
图3为本发明实施例提供的一种数据库集群部署方案示意图,如图3所示,MGRGroup由三个节点(Node)组成,也即由三个主库组成,三个节点通过Paxos协议选举出一个Master节点用于数据写入,通过Paxos协议保持三个节点数据强一致。配置管理服务可以感知MGR Group三个节点的角色变化并自动选择Master节点进行配置写入,具体实现细节可参考下文相关内容。为了兼顾Paxos协议数据同步性能和可用性,三个节点部署在同城三机房。从库(Slave)在全球三个洲部署,每个洲部署三个机房(第二机房),从库和主库之间可以采用异步复制(Replicate)的方式实现最终一致性。每个第二机房的配置服务优先读本机房的从库,并在本机房从库不可用时降级到同区域其他从库,实现从库的互备,从而达到高可用,具体实现细节可参考下文相关内容。
需要说明的是,上述仅为举例说明,其中的主数据库的类型和数量、从数据库的类型和数量、预设一致性协议的类型、业务区域的划分方式、第一机房的数量以及每组第二机房的数量等,均可根据实际需求进行设置。
图4为本发明实施例提供的一种配置数据访问方法的流程示意图,该方法应用于微服务架构中的配置中心的配置管理服务,可以由配置数据访问装置执行,其中该装置可由软件和/或硬件实现,一般可集成在服务器等计算机设备中。如图4所示,该方法包括:
步骤401、检测到配置数据写入事件被触发。
示例性的,此处的配置数据写入事件具体可以是针对主数据库的配置数据写入事件,该事件的触发条件可根据实际需求设置。例如,当工作人员需要进行配置增加、配置修改、配置删除或其他配置数据变更操作时,上述增加、修改或删除等均可视为写入操作,工作人员可以利用配置管理设备(例如在该设备中的Portal界面进行操作)通过调用配置管理服务实现针对主数据库的配置数据写入,当配置管理服务接收到配置管理设备发送的配置数据写入请求时,可认为检测到配置数据写入事件被触发。配置管理设备的数量不做限定,可以是一个或多个,当数量为多个时,可以与第一机房的数量一致,配置管理设备可以设置于第一机房中,也可设置于其他地点,可以与配置管理服务所在设备进行通信。
步骤402、若探测到所在第一机房对应的目标主数据库处于可写状态,则针对所述目标主数据库进行配置数据写入操作,其中,处于可写状态的主数据库基于所述预设一致性协议确定。
示例性的,多个主数据库可以基于预设一致性协议选举出作为主节点的主数据库,作为主节点的主数据库处于可写状态。其中,主节点的数量可以是一个或多个,具体不做限定。若当前配置管理服务所在的第一机房对应的目标主数据库为主节点,则该目标主数据库为可写状态,当前配置管理服务能够探测到目标主数据库为可写状态,进而可以针对目标主数据库进行配置数据写入操作。若当前配置管理服务所在的第一机房对应的目标主数据库不是主节点,那么其他配置管理服务会探测到可写状态的主数据库,从而实现高可靠的配置数据写入。
步骤403、检测到所述目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息。
示例性的,针对目标主数据库进行配置数据写入操作的过程中,由于所有主数据库基于预设一致性协议保证数据强一致,因此,目标主数据库会将被写入的配置数据同步到其他主数据库中,在检测到其他主数据库完成针对本次写入操作的数据同步后,可确认需要写入的配置数据已经成功写入到所有主数据库中,可以向配置管理设备反馈写入成功信息,以便进行后续操作。
本发明实施例中提供的配置数据访问方法,微服务架构中的配置中心包括配置中心服务端和配置中心客户端,配置中心服务端包括配置管理服务和配置服务,配置管理服务部署于至少两个第一机房内,每个第一机房配备一个主数据库,所有主数据库基于预设一致性协议保证数据强一致,第一机房之间的网络质量满足预设质量要求,可以保证第一机房之间的通信可靠性,同时,也能够保证主库之间的同步性能以及主库的高可用性,配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第二机房配备一个从数据库,主数据库和从数据库包含于配置中心对应的数据库集群中,在上述配置中心的架构基础上,配置管理服务检测到配置数据写入事件被触发后,主动探测所在第一机房对应的目标主数据库是否处于可写状态,若处于,则针对目标主数据库进行配置数据写入操作,而处于可写状态的主数据库是基于预设一致性协议确定的,也即预设一致性协议中定义的主,以便能够基于该协议保障主库之间数据强一致,检测到目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息,从而可以不依赖其他组件而在配置中心内部实现智能探测可写主库并进行配置数据的高可靠性写入操作,且所有主数据库基于预设一致性协议保证数据强一致,也能够保证主库的高可用和数据一致性,避免发生因数据丢失而影响业务的情况。
在一些实施例中,在所述检测到配置数据写入事件被触发之前,还包括:获取所述数据库集群的拓扑结构信息,其中,所述拓扑结构信息中包含机房与数据库的对应关系;根据所述拓扑结构信息查询所在第一机房对应的目标主数据库。这样设置的好处在于,可以便于配置管理服务快速准确地确认与自己对应的主数据库。
示例性的,拓扑结构信息可以包含于数据库拓扑结构配置文件中,该配置文件的具体格式不做限定,例如可以是Json格式,如数据库拓扑结构配置文件可被记为datasource.json。拓扑结构信息中可包括主库列表和从库列表。主库列表中可包括各主数据库的IP和端口号,从库列表可包括各从数据库对应的机房信息和位置信息(如所在地区信息)等。对于配置管理服务读取的拓扑结构信息来说,也可以仅包括主库列表。配置管理服务可以确认自己所属设备的IP和端口号,进而将自己的IP和端口号与主库列表中的IP和端口号进行比对,将相似度最高(若配置管理服务所在设备和对应的主数据库所在设备相同,则IP和端口号也相同)的主数据库确定为自己对应的目标主数据库。
在一些实施例中,在所述根据所述拓扑结构信息查询所在第一机房对应的目标主数据库之后,还包括:与所述目标主数据库建立第一连接;所述探测到所述目标主数据库处于可写状态,包括:基于所述第一连接尝试向所述目标主数据库写入第一数据,若检测到所述第一数据写入成功,则确定所述目标主数据库处于可写状态。这样设置的好处在于,在确定对应的目标主数据库后,可以与该目标主数据库建立连接,在需要进行配置数据访问时,不需要临时建立连接,提高配置数据访问效率,另外,通过尝试写入数据的方式,可以对目标主数据库的状态进行准确的判断。
在一些实施例中,在与所述目标主数据库建立第一连接之后,还包括:若监听到所述拓扑结构信息发生变化,则根据变化后的拓扑结构信息确定新的目标主数据库;与所述新的目标主数据库建立第二连接。这样设置的好处在于,若拓扑结构信息发生变化,那么对应的目标主数据库可能也发生变化,可以断开与原来的目标主数据库的第一连接,并与新的目标主数据库建立第二连接,在后续需要进行配置数据访问时,不需要临时变更连接,提高配置数据访问效率。
在一些实施例中,还包括:检测到配置数据读取事件被触发;探测出处于可读状态的备选主数据库;从所述备选主数据库中挑选出目的主数据库,并针对所述目的主数据库进行配置数据读取操作,其中,所述目的主数据库所在机房与当前配置管理服务所在第一机房的第一距离小于其他备选主数据库所在机房与当前配置管理服务所在机房的第二距离。这样设置的好处在于,配置管理服务可能也存在对配置数据的读取需求,当配置管理服务需要读取主数据库中的配置数据时,可以就近选择主数据库进行读取操作,一般的,目的主数据库为与当前配置管理服务同设备或同机房的主数据库,当距离最近的主数据库出现异常时,也可从处于可读状态的主数据库中选出举例最近的主数据库进行读取操作。其中,探测方式可以是按照主数据库所在机房与当前配置管理服务所在机房的距离从近至远逐一探测,也可以是批量探测,具体不做限定。
图5为本发明实施例提供的另一种配置数据访问方法的流程示意图,该方法应用于微服务架构中的配置中心的配置服务,可以由配置数据访问装置执行,其中该装置可由软件和/或硬件实现,一般可集成在服务器等计算机设备中。如图5所示,该方法包括:
步骤501、检测到配置数据读取事件被触发。
示例性的,此处的配置数据读取事件具体可以是针对从数据库的配置数据读取事件,该事件的触发条件可根据实际需求设置。例如,当业务***需要获取配置数据时,可以通过配置中心客户端向配置服务发送配置数据获取请求,配置服务需要到从库中读取配置数据,配置服务在接收到该请求时,可认为检测到配置数据读取事件被触发;又如,配置服务可以按照预设推送规则(如定时或实时推送)向业务***推送配置数据,在检测到需要进行配置数据推送时,配置服务需要到从库中读取配置数据,可认为检测到配置数据读取事件被触发。一般的,一个配置服务可以对应一个或多个配置中心客户端,也即一个配置服务可以为一个或多个业务***提供配置拉去或推送服务。
步骤502、探测出处于可读状态的备选从数据库。
示例性的,探测范围可以是当前配置服务对应的业务区域,可以减少探测操作,当然,如果为了进一步保障可用性,探测范围也可以是多个业务区域。本发明实施例中的配置服务可以自动探测出处于可读状态的备选从数据库,便于后续从中选择最优的从数据库进行配置数据的读取操作。其中,探测方式可以是按照从数据库所在机房与当前配置服务所在机房的距离从近至远逐一探测,也可以是批量探测,具体不做限定。
步骤503、从所述备选从数据库中挑选出目的从数据库,并针对所述目的从数据库进行配置数据读取操作,其中,所述目的从数据库所在机房与当前配置服务所在第二机房的第一距离小于其他备选从数据库所在机房与当前配置服务所在机房的第二距离。
示例性的,可以从处于可读状态的备选从数据库中挑选出距离最近的从数据库进行配置数据读取。一般的,与配置服务处于同设备或同机房的从数据库距离最近,若该从数据库出现异常,未处于可读状态,则可挑选同一个业务区域的其他从数据库进行配置数据读取。其中,距离的粒度可自由设置,可以是实际的地理坐标的距离,也可以是城市或地区等。例如,若距离的粒度为城市,则同一城市的机房的距离均可认为是0,相邻两个城市的机房的距离可认为1等。
本发明实施例中提供的配置数据访问方法,微服务架构中的配置中心包括配置中心服务端和配置中心客户端,配置中心服务端包括配置管理服务和配置服务,配置管理服务部署于至少两个第一机房内,每个第一机房配备一个主数据库,所有主数据库基于预设一致性协议保证数据强一致,第一机房之间的网络质量满足预设质量要求,可以保证第一机房之间的通信可靠性,同时,也能够保证主库之间的同步性能以及主库的高可用性,配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第二机房配备一个从数据库,主数据库和从数据库包含于配置中心对应的数据库集群中,在上述配置中心的架构基础上,配置服务检测到配置数据读取事件被触发后,主动探测处于可读状态的备选从数据库,并挑选出距离最近的备选从数据库进行配置数据读取,实现从库的互相备用,保证配置中心的高可用。
在一些实施例中,在所述检测到配置数据读取事件被触发之前,还包括:获取所述数据库集群的拓扑结构信息,其中,所述拓扑结构信息中包含机房与数据库的对应关系信息,以及数据库与业务区域的对应关系信息;根据所述拓扑结构信息查询所在第二机房对应的目标业务区域中包含的至少两个从数据库;所述探测出处于可读状态的备选主数据库,包括:从所查询到的至少两个从数据库中探测出处于可读状态的备选从数据库。这样设置的好处在于,可以便于配置服务快速准确地确认与自己对应的业务区域,并从该业务区域内快速探测出处于可读状态的备选从数据库。
如前文所述,拓扑结构信息可以包含于数据库拓扑结构配置文件中,配置服务中的拓扑结构信息可以与配置管理服务中的拓扑结构信息相同,也即配置服务和配置管理服务所属设备中,均可以存在相同的数据库拓扑结构配置文件,这样可以便于数据库拓扑结构配置文件的统一编写、统一更新以及统一下发。可选的,配置服务中的拓扑结构信息也可仅包含从库列表。配置服务可以确认自己所属的地区和机房,进而在从库列表中查询与自己所属地区和机房相同的从库。
在一些实施例中,在所述根据所述拓扑结构信息查询所在第二机房对应的目标业务区域中包含的至少两个从数据库之后,还包括:与所查询到的至少两个从数据库分别建立第三连接;所述从所查询到的至少两个从数据库中探测出处于可读状态的备选从数据库,包括:基于所述第三连接分别尝试从所查询到的至少两个从数据库读取第二数据,若检测到所述第二数据读取成功,则确定对应的从数据库处于可读状态,成为备选从数据库。这样设置的好处在于,在查询到对应的从数据库后,可以与该从主数据库建立连接,在需要进行配置数据访问时,不需要临时建立连接,提高配置数据访问效率,另外,通过尝试读取数据的方式,可以对从数据库的状态进行准确的判断。需要说明的是,在于从数据库建立第三连接时,可以优先建立与当前配置服务处于同设备或同机房的从数据库的第三连接,在需要进行读取操作时,若基于该第三连接探测到该从数据库未处于可读状态时,再与其他从数据库建立第三连接,进而探测出处于可读状态的备选从数据库。
在一些实施例中,在与所查询到的至少两个从数据库分别建立第三连接之后,还包括:若监听到所述拓扑结构信息发生变化,则根据变化后的拓扑结构信息确定新的查询到的至少两个从数据库;与新查询到的至少两个从数据库建立第四连接。这样设置的好处在于,若拓扑结构信息发生变化,那么对应的从数据库可能也发生变化,可以断开与原来的从主数据库的第三连接,并与新查询到的从主数据库建立第四连接,在后续需要进行配置数据读取时,不需要临时变更连接,提高配置数据读取效率。
在一些实施例中,上述应用于配置管理服务的配置数据访问方法以及应用于配置服务的配置数据访问方法可以由同样的程序代码完成,该程序可以智能判断出当前被触发的是配置数据写入事件还是配置数据读取事件,配置数据读取事件是针对主数据库的还是针对从数据库的,具体可以根据接收到的请求类型或结构化查询语言(Structured QueryLanguage,SQL)语句等判断。
示例性的,本发明实施例中可将上述程序称为智能数据源,图6为本发明实施例提供的一种智能数据源实现方式示意图,如图6所示,datasource.json为前文所述数据库拓扑结构配置文件。DataSourceConfigSyncer为配置***,负责监听datasource.json的变化,并通知DataSourceManager重建智能数据源。SmartDataSource为智能数据源的实现类,提供给上层统一的数据访问接口,其内部包含写数据源MultiWriteDataSource和读数据源MultiReadDataSource,并根据SQL的类型路由到对应数据源。
MultiWriteDataSource为写数据源的封装,内部包含多个(例如可以是3个,与主数据库数量相同)WriteDataSource,MultiWriteDataSource会选择一个可写的WriteDataSource进行写入,而是否可写则通过WriteHeartbeat(写心跳)周期性发送写SQL进行探测,在本发明实施例中可以采用MGR中的单主模式,则在该模式下,任何时刻只有一个节点可写入。
MultiReadDataSource为读数据源的封装,内部包含多个(例如一个业务区域部署3个从数据库,则此处数量可以为3个)Read DataSource,MultiReadDataSource会从所有健康的(也即处于可读状态的)ReadDataSource中选择一个最优的进行读操作。健康状态通过ReadHeartbeat(读心跳)周期性发送读SQL进行探测,而最优节点的选择则根据priority(优先级)字段标示(选择priority值最小的)进行选择,priority是按距离排序的,也即距离越小,对应的priority值越小。
通过上述配置服务端和MySQL集群部署方案及智能数据源的设计,可以实现在全球化部署以及不可靠网络环境下的配置高可用和最终一致性,并且可以做到***自治,在故障发生时不需要任何外部介入(也即不依赖其他中间件等组件,也不需要人为干预)即能实现故障转移,实现主库的高可用和各个业务区域从库的高可用。
图7为本发明实施例提供的一种配置数据访问装置的结构框图,该装置应用于微服务架构中的配置中心的配置管理服务,可由软件和/或硬件实现,一般可集成在服务器等计算机设备中,可通过执行配置数据访问方法来进行配置数据访问。如图7所示,该装置包括:
写入事件监测模块701,用于检测配置数据写入事件是否被触发;
写入操作模块702,用于在检测到配置数据写入事件被触发后,若探测到所在第一机房对应的目标主数据库处于可写状态,则针对所述目标主数据库进行配置数据写入操作,其中,处于可写状态的主数据库基于所述预设一致性协议确定;
写入操作反馈模块703,用于检测到所述目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息。
本发明实施例提供的配置数据访问装置,微服务架构中的配置中心包括配置中心服务端和配置中心客户端,配置中心服务端包括配置管理服务和配置服务,配置管理服务部署于至少两个第一机房内,每个第一机房配备一个主数据库,所有主数据库基于预设一致性协议保证数据强一致,第一机房之间的网络质量满足预设质量要求,可以保证第一机房之间的通信可靠性,同时,也能够保证主库之间的同步性能以及主库的高可用性,配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第二机房配备一个从数据库,主数据库和从数据库包含于配置中心对应的数据库集群中,在上述配置中心的架构基础上,配置管理服务检测到配置数据写入事件被触发后,主动探测所在第一机房对应的目标主数据库是否处于可写状态,若处于,则针对目标主数据库进行配置数据写入操作,而处于可写状态的主数据库是基于预设一致性协议确定的,也即预设一致性协议中定义的主,以便能够基于该协议保障主库之间数据强一致,检测到目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息,从而可以不依赖其他组件而在配置中心内部实现智能探测可写主库并进行配置数据的高可靠性写入操作,且所有主数据库基于预设一致性协议保证数据强一致,也能够保证主库的高可用和数据一致性,避免发生因数据丢失而影响业务的情况。
图8为本发明实施例提供的另一种配置数据访问装置的结构框图,该装置应用于微服务架构中的配置中心的配置服务,可由软件和/或硬件实现,一般可集成在服务器等计算机设备中,可通过执行配置数据访问方法来进行配置数据访问。如图8所示,该装置包括:
读取事件触发检测模块801,用于检测配置数据读取事件是否被触发;
状态探测模块802,用于在检测到配置数据读取事件被触发后,探测出处于可读状态的备选从数据库;
读取操作模块803,用于从所述备选从数据库中挑选出目的从数据库,并针对所述目的从数据库进行配置数据读取操作,其中,所述目的从数据库所在机房与当前配置服务所在第二机房的第一距离小于其他备选从数据库所在机房与当前配置服务所在机房的第二距离。
本发明实施例中提供的配置数据访问装置,微服务架构中的配置中心包括配置中心服务端和配置中心客户端,配置中心服务端包括配置管理服务和配置服务,配置管理服务部署于至少两个第一机房内,每个第一机房配备一个主数据库,所有主数据库基于预设一致性协议保证数据强一致,第一机房之间的网络质量满足预设质量要求,可以保证第一机房之间的通信可靠性,同时,也能够保证主库之间的同步性能以及主库的高可用性,配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第二机房配备一个从数据库,主数据库和从数据库包含于配置中心对应的数据库集群中,在上述配置中心的架构基础上,配置服务检测到配置数据读取事件被触发后,主动探测处于可读状态的备选从数据库,并挑选出距离最近的备选从数据库进行配置数据读取,实现从库的互相备用,保证配置中心的高可用。
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的配置数据访问装置。图9为本发明实施例提供的一种计算机设备的结构框图。计算机设备900包括存储器901、处理器902及存储在存储器901上并可在处理器902上运行的计算机程序,所述处理器902执行所述计算机程序时实现本发明实施例提供的配置数据访问方法。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的配置数据访问方法。
本发明实施例还提供一种微服务架构中的配置中心,包括配置中心服务端和配置中心客户端,所述配置中心服务端包括所述配置管理服务和配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;所述配置管理服务基于本发明实施例所述的配置数据访问方法进行配置数据写入等访问操作;所述配置服务基于本发明实施例所述的配置数据访问方法进行配置数据读取等访问操作。
上述实施例中提供的配置数据访问装置、设备、存储介质以及配置中心可执行本发明实施例所提供的配置数据访问方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明相应实施例所提供的配置数据访问方法。
注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。
Claims (14)
1.一种配置数据访问方法,其特征在于,应用于微服务架构中的配置中心的配置管理服务,所述配置中心包括配置中心服务端和配置中心客户端,所述配置中心服务端包括所述配置管理服务和配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述方法包括:
检测到配置数据写入事件被触发;
若探测到所在第一机房对应的目标主数据库处于可写状态,则针对所述目标主数据库进行配置数据写入操作,其中,处于可写状态的主数据库基于所述预设一致性协议确定;
检测到所述目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息。
2.根据权利要求1所述的方法,其特征在于,在所述检测到配置数据写入事件被触发之前,还包括:
获取所述数据库集群的拓扑结构信息,其中,所述拓扑结构信息中包含机房与数据库的对应关系信息;
根据所述拓扑结构信息查询所在第一机房对应的目标主数据库。
3.根据权利要求2所述的方法,其特征在于,在所述根据所述拓扑结构信息查询所在第一机房对应的目标主数据库之后,还包括:
与所述目标主数据库建立第一连接;
所述探测到所述目标主数据库处于可写状态,包括:
基于所述第一连接尝试向所述目标主数据库写入第一数据,若检测到所述第一数据写入成功,则确定所述目标主数据库处于可写状态。
4.根据权利要求3所述的方法,其特征在于,在与所述目标主数据库建立第一连接之后,还包括:
若监听到所述拓扑结构信息发生变化,则根据变化后的拓扑结构信息确定新的目标主数据库;
与所述新的目标主数据库建立第二连接。
5.根据权利要求1所述的方法,其特征在于,还包括:
检测到配置数据读取事件被触发;
探测出处于可读状态的备选主数据库;
从所述备选主数据库中挑选出目的主数据库,并针对所述目的主数据库进行配置数据读取操作,其中,所述目的主数据库所在机房与当前配置管理服务所在第一机房的第一距离小于其他备选主数据库所在机房与当前配置管理服务所在机房的第二距离。
6.一种配置数据访问方法,其特征在于,应用于微服务架构中的配置中心的配置服务,所述配置中心包括配置中心服务端和配置中心客户端,所述配置中心服务端包括配置管理服务和所述配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述方法包括:
检测到配置数据读取事件被触发;
探测出处于可读状态的备选从数据库;
从所述备选从数据库中挑选出目的从数据库,并针对所述目的从数据库进行配置数据读取操作,其中,所述目的从数据库所在机房与当前配置服务所在第二机房的第一距离小于其他备选从数据库所在机房与当前配置服务所在机房的第二距离。
7.根据权利要求6所述的方法,其特征在于,在所述检测到配置数据读取事件被触发之前,还包括:
获取所述数据库集群的拓扑结构信息,其中,所述拓扑结构信息中包含机房与数据库的对应关系信息,以及数据库与业务区域的对应关系信息;
根据所述拓扑结构信息查询所在第二机房对应的目标业务区域中包含的至少两个从数据库;
所述探测出处于可读状态的备选主数据库,包括:
从所查询到的至少两个从数据库中探测出处于可读状态的备选从数据库。
8.根据权利要求7所述的方法,其特征在于,在所述根据所述拓扑结构信息查询所在第二机房对应的目标业务区域中包含的至少两个从数据库之后,还包括:
与所查询到的至少两个从数据库分别建立第三连接;
所述从所查询到的至少两个从数据库中探测出处于可读状态的备选从数据库,包括:
基于所述第三连接分别尝试从所查询到的至少两个从数据库读取第二数据,若检测到所述第二数据读取成功,则确定对应的从数据库处于可读状态,成为备选从数据库。
9.根据权利要求8所述的方法,其特征在于,在与所查询到的至少两个从数据库分别建立第三连接之后,还包括:
若监听到所述拓扑结构信息发生变化,则根据变化后的拓扑结构信息确定新的查询到的至少两个从数据库;
与新查询到的至少两个从数据库建立第四连接。
10.一种配置数据访问装置,其特征在于,应用于微服务架构中的配置中心的配置管理服务,所述配置中心包括配置中心服务端和配置中心客户端,所述配置中心服务端包括所述配置管理服务和配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述装置包括:
写入事件监测模块,用于检测配置数据写入事件是否被触发;
写入操作模块,用于在检测到配置数据写入事件被触发后,若探测到所在第一机房对应的目标主数据库处于可写状态,则针对所述目标主数据库进行配置数据写入操作,其中,处于可写状态的主数据库基于所述预设一致性协议确定;
写入操作反馈模块,用于检测到所述目标主数据库之外的主数据库完成针对本次写入操作的数据同步后,反馈写入成功信息。
11.一种配置数据访问装置,其特征在于,应用于微服务架构中的配置中心的配置服务,所述配置中心包括配置中心服务端和配置中心客户端,所述配置中心服务端包括配置管理服务和所述配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述装置包括:
读取事件触发检测模块,用于检测配置数据读取事件是否被触发;
状态探测模块,用于在检测到配置数据读取事件被触发后,探测出处于可读状态的备选从数据库;
读取操作模块,用于从所述备选从数据库中挑选出目的从数据库,并针对所述目的从数据库进行配置数据读取操作,其中,所述目的从数据库所在机房与当前配置服务所在第二机房的第一距离小于其他备选从数据库所在机房与当前配置服务所在机房的第二距离。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-9任一项所述的方法。
13.一种微服务架构中的配置中心,其特征在于,包括配置中心服务端和配置中心客户端,所述配置中心服务端包括所述配置管理服务和配置服务,所述配置管理服务部署于至少两个第一机房内,所述至少两个第一机房之间的网络质量满足预设质量要求,所述配置服务部署于至少两组第二机房内,同一组第二机房位于同一个业务区域,不同组第二机房位于不同业务区域,每个第一机房配备一个主数据库,每个第二机房配备一个从数据库,所述主数据库和所述从数据库包含于所述配置中心对应的数据库集群中,所有主数据库基于预设一致性协议保证数据强一致;
所述配置管理服务基于如权利要求1-5任一所述的方法进行配置数据访问;
所述配置服务基于如权利要求6-9任一所述的方法进行配置数据访问。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010831215.3A CN112015744B (zh) | 2020-08-18 | 2020-08-18 | 配置数据访问方法、装置、设备、配置中心及存储介质 |
PCT/CN2021/108147 WO2022037359A1 (zh) | 2020-08-18 | 2021-07-23 | 配置数据访问方法、装置、设备、配置中心及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010831215.3A CN112015744B (zh) | 2020-08-18 | 2020-08-18 | 配置数据访问方法、装置、设备、配置中心及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015744A true CN112015744A (zh) | 2020-12-01 |
CN112015744B CN112015744B (zh) | 2024-05-31 |
Family
ID=73504895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010831215.3A Active CN112015744B (zh) | 2020-08-18 | 2020-08-18 | 配置数据访问方法、装置、设备、配置中心及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112015744B (zh) |
WO (1) | WO2022037359A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703866A (zh) * | 2021-08-25 | 2021-11-26 | 上海哔哩哔哩科技有限公司 | 配置中心信息同步方法及*** |
WO2022037359A1 (zh) * | 2020-08-18 | 2022-02-24 | 百果园技术(新加坡)有限公司 | 配置数据访问方法、装置、设备、配置中心及存储介质 |
CN114666418A (zh) * | 2022-03-10 | 2022-06-24 | 北京九恒星科技股份有限公司 | 业务***衔接方法、装置及存储介质 |
CN114844951A (zh) * | 2022-04-22 | 2022-08-02 | 百果园技术(新加坡)有限公司 | 请求处理方法、***、设备、存储介质及产品 |
WO2023246236A1 (zh) * | 2022-06-24 | 2023-12-28 | 北京奥星贝斯科技有限公司 | 分布式数据库的节点配置方法、事务日志同步方法和节点 |
CN117369906A (zh) * | 2023-12-07 | 2024-01-09 | 成都市楠菲微电子有限公司 | Pcie验证平台、方法、装置、存储介质及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934428B (zh) * | 2023-01-10 | 2023-05-23 | 湖南三湘银行股份有限公司 | 一种mysql数据库的主灾备切换方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070203944A1 (en) * | 2006-02-28 | 2007-08-30 | International Business Machines Corporation | Web services database cluster architecture |
CN101309161A (zh) * | 2007-05-01 | 2008-11-19 | 兄弟工业株式会社 | 信息分发***,该信息分发***中应用的终端设备,记录程序的记录介质以及环路连接避免方法 |
CN108306955A (zh) * | 2018-01-24 | 2018-07-20 | 北京万得嘉瑞汽车技术有限公司 | 一种车载终端大规模互联集群方法 |
CN109726250A (zh) * | 2018-12-27 | 2019-05-07 | 星环信息科技(上海)有限公司 | 数据存储***、元数据库同步及数据跨域计算方法 |
CN110851528A (zh) * | 2019-10-09 | 2020-02-28 | 网联清算有限公司 | 数据库同步方法、装置、存储介质及计算机设备 |
CN111078426A (zh) * | 2019-12-03 | 2020-04-28 | 紫光云(南京)数字技术有限公司 | 一种后端微服务架构下的高并发解决方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205182B (zh) * | 2015-10-28 | 2019-02-01 | 北京奇虎科技有限公司 | 多机房部署***及跨机房的业务数据处理方法 |
CN106341454B (zh) * | 2016-08-23 | 2019-09-24 | 世纪龙信息网络有限责任公司 | 跨机房多活分布式数据库管理***和方法 |
CN108090222B (zh) * | 2018-01-05 | 2020-07-07 | 中国科学院计算技术研究所 | 一种数据库集群节点间数据同步*** |
US10901382B2 (en) * | 2018-02-13 | 2021-01-26 | Tridonic Gmbh & Co Kg | Commissioning smart lighting systems |
CN109471755A (zh) * | 2018-11-14 | 2019-03-15 | 江苏鸿信***集成有限公司 | 一种基于云计算的同城异地灾备的方法及其*** |
CN110633175B (zh) * | 2019-09-27 | 2020-07-28 | 掌阅科技股份有限公司 | 基于微服务的多机房数据处理方法、电子设备及存储介质 |
CN111090637A (zh) * | 2019-12-20 | 2020-05-01 | 辽宁振兴银行股份有限公司 | 一种金融级基于A10的高可用MySQL数据库实现方法 |
CN112015744B (zh) * | 2020-08-18 | 2024-05-31 | 广州市百果园信息技术有限公司 | 配置数据访问方法、装置、设备、配置中心及存储介质 |
-
2020
- 2020-08-18 CN CN202010831215.3A patent/CN112015744B/zh active Active
-
2021
- 2021-07-23 WO PCT/CN2021/108147 patent/WO2022037359A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070203944A1 (en) * | 2006-02-28 | 2007-08-30 | International Business Machines Corporation | Web services database cluster architecture |
CN101309161A (zh) * | 2007-05-01 | 2008-11-19 | 兄弟工业株式会社 | 信息分发***,该信息分发***中应用的终端设备,记录程序的记录介质以及环路连接避免方法 |
CN108306955A (zh) * | 2018-01-24 | 2018-07-20 | 北京万得嘉瑞汽车技术有限公司 | 一种车载终端大规模互联集群方法 |
CN109726250A (zh) * | 2018-12-27 | 2019-05-07 | 星环信息科技(上海)有限公司 | 数据存储***、元数据库同步及数据跨域计算方法 |
CN110851528A (zh) * | 2019-10-09 | 2020-02-28 | 网联清算有限公司 | 数据库同步方法、装置、存储介质及计算机设备 |
CN111078426A (zh) * | 2019-12-03 | 2020-04-28 | 紫光云(南京)数字技术有限公司 | 一种后端微服务架构下的高并发解决方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022037359A1 (zh) * | 2020-08-18 | 2022-02-24 | 百果园技术(新加坡)有限公司 | 配置数据访问方法、装置、设备、配置中心及存储介质 |
CN113703866A (zh) * | 2021-08-25 | 2021-11-26 | 上海哔哩哔哩科技有限公司 | 配置中心信息同步方法及*** |
CN113703866B (zh) * | 2021-08-25 | 2024-04-26 | 上海哔哩哔哩科技有限公司 | 配置中心信息同步方法及*** |
CN114666418A (zh) * | 2022-03-10 | 2022-06-24 | 北京九恒星科技股份有限公司 | 业务***衔接方法、装置及存储介质 |
CN114666418B (zh) * | 2022-03-10 | 2024-02-20 | 北京九恒星科技股份有限公司 | 业务***衔接方法、装置及存储介质 |
CN114844951A (zh) * | 2022-04-22 | 2022-08-02 | 百果园技术(新加坡)有限公司 | 请求处理方法、***、设备、存储介质及产品 |
CN114844951B (zh) * | 2022-04-22 | 2024-03-19 | 百果园技术(新加坡)有限公司 | 请求处理方法、***、设备、存储介质及产品 |
WO2023246236A1 (zh) * | 2022-06-24 | 2023-12-28 | 北京奥星贝斯科技有限公司 | 分布式数据库的节点配置方法、事务日志同步方法和节点 |
CN117369906A (zh) * | 2023-12-07 | 2024-01-09 | 成都市楠菲微电子有限公司 | Pcie验证平台、方法、装置、存储介质及电子设备 |
CN117369906B (zh) * | 2023-12-07 | 2024-02-09 | 成都市楠菲微电子有限公司 | Pcie验证平台、方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112015744B (zh) | 2024-05-31 |
WO2022037359A1 (zh) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015744B (zh) | 配置数据访问方法、装置、设备、配置中心及存储介质 | |
US11360854B2 (en) | Storage cluster configuration change method, storage cluster, and computer system | |
CN109729111B (zh) | 用于管理分布式***的方法、设备和计算机程序产品 | |
EP3159794A1 (en) | Distributed storage replication system and method | |
WO2018171565A1 (zh) | 容灾部署方法、装置及*** | |
CN107404509B (zh) | 分布式服务配置***及信息管理方法 | |
CN110391940B (zh) | 服务地址的响应方法、装置、***、设备和存储介质 | |
Suh et al. | On performance of OpenDaylight clustering | |
CN115150410B (zh) | 多集群访问方法和*** | |
CN114116912A (zh) | 一种基于Keepalived实现数据库高可用的方法 | |
CN105959078A (zh) | 一种集群时间同步方法、集群及时间同步*** | |
CN115086330A (zh) | 跨集群负载均衡*** | |
CN114500257B (zh) | 网络配置分发方法、装置、控制节点及存储介质 | |
CN114297296A (zh) | 一种广播用的服务器主备切换*** | |
CN112000444B (zh) | 数据库事务处理方法、装置、存储介质和电子设备 | |
CN112214377B (zh) | 一种设备管理方法及*** | |
CN111064643B (zh) | 一种节点服务器及其数据交互方法和相关装置 | |
CN112865995B (zh) | 分布式主从*** | |
CN114500289B (zh) | 控制平面恢复方法、装置、控制节点及存储介质 | |
CN111400110B (zh) | 数据库访问管理*** | |
CN109992384B (zh) | 服务注册发现协调***及其方法 | |
CN107153594B (zh) | 分布式数据库***的ha组件选主方法及其*** | |
CN114422280B (zh) | 网络部署方法、装置、节点及存储介质 | |
WO2021072967A1 (zh) | 一种配置信息管理方法及装置 | |
CN117573415A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |