CN111209120A - 微服务的数据同步方法、装置及计算机可读存储介质 - Google Patents
微服务的数据同步方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111209120A CN111209120A CN202010025271.8A CN202010025271A CN111209120A CN 111209120 A CN111209120 A CN 111209120A CN 202010025271 A CN202010025271 A CN 202010025271A CN 111209120 A CN111209120 A CN 111209120A
- Authority
- CN
- China
- Prior art keywords
- microservice
- data
- instance
- data synchronization
- unit server
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种大数据技术,揭露了一种微服务的数据同步方法,包括:基于预先构建的一致性哈希算法对原始微服务的负载均衡场景进行动态增删,得到标准负载均衡场景,其中,所述标准负载均衡场景包括微服务的实例负载监控和微服务的实例状态变化检测;通过预先创建的单元服务器组向所述标准负载均衡场景进行实时数据读取,得到实时数据集;将所述实时数据集输入至所述预先创建的单元服务器组的单元节点中,通过消息中间件实现所述单元节点之间的实时数据同步。本发明还提出一种微服务的数据同步装置以及一种计算机可读存储介质。本发明实现了微服务的数据同步。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种微服务的数据同步方法、装置及计算机可读存储介质。
背景技术
微服务架构是一项在云中部署应用和服务的新技术。随着微服务架构的逐渐应用,一个上游系统会对接N个下游系统,由于每一个下游系统对接口响应的标准不一样、业务特殊性不能配合优化以及各个系统之间的实时数据同步等问题导致上游系统的优化受限制,从而导致系统之间的耦合度过高,上游系统服务器压力过大,上游系统接口响应过慢。
发明内容
本发明提供一种微服务的数据同步方法、装置及计算机可读存储介质,其主要目的在于当用户在进行微服务的数据同步时,给用户呈现出精准的数据同步结果。
为实现上述目的,本发明提供的一种微服务的数据同步方法,包括:
基于预先构建的一致性哈希算法对原始微服务的负载均衡场景进行动态增删,得到标准负载均衡场景,其中,所述标准负载均衡场景包括微服务的实例负载监控和微服务的实例状态变化检测;
通过预先创建的单元服务器组向所述标准负载均衡场景进行实时数据读取,得到实时数据集;
将所述实时数据集输入至所述预先创建的单元服务器组的单元节点中,通过消息中间件实现所述单元节点之间的实时数据同步。
可选地,所述预先构建的一致性哈希算法包括:
预设虚拟节点的数目,以实现存储空间分配的均衡性;
采用TreeMap数据结构对所述虚拟节点的数据存储结构进行构建,所述TreeMap数据结构通过红黑树实现所述节点的存储;
选择所述虚拟节点的散列函数,通过所述散列函数实现所述虚拟节点的哈希检索操作。
可选地,所述原始微服务的负载均衡场景包括将任务分摊到多个单元服务器上共同完成,其中,所述操作单元包括Web服务器、FTP服务器、企业关键应用服务器。
可选地,所述微服务的实例负载监控包括:微服务的实例调用、微服务的实例并发以及微服务的实例数据更新。
可选地,所述微服务的实例状态变化检测包括:
通过负载均衡定时检测所述微服务的实例状态变化是否为实例增加和/或删除;
当所述微服务的实例状态变化是实例增加和/或删除时,采用所述一致性哈希算法对所述实例请求进行重新分配,并将分配结果返回对应的调用者;
当所述微服务的实例状态变化不是实例增加和/或删除时,报告所述实例运行的负载状态,并定时判断所述实例的负载状态是否达到预设的负载阀值。
可选地,所述单元服务器组的创建包括:
构建所述单元服务器组存储数据结构、选择所述单元服务器组持久化方式、利用Redis的复制功能实现所述单元服务器组的数据备份以及存储所述单元服务器组固定的数据,以完成对所述单元服务器组的创建。
可选地,所述利用Redis的复制功能实现所述单元服务器组的数据备份,包括:
选择所述单元服务器组其中一个单元服务器作为主单元服务器,通过所述Redis的laveof命令和slaveof配置属性将所述单元服务器组中剩余单元服务器设置为所述主单元服务器的从单元服务器;
启动所述从单元服务器,向所述主单元服务器发送同步的命令,通过所述主单元服务器启动后台进程来生成内存数据的快照,同时记录生成快照期间新执行的写命令,完成所述单元服务器组中主单元服务器的数据备份。
此外,为实现上述目的,本发明提供一种微服务的数据同步系统,该系统包括一个或者多个功能模块,该功能模块存储在数据处理设备的存储器中,并由所述数据处理设备的处理器执行,以实现如上所述的微服务的数据同步方法的步骤。
此外,为实现上述目的,本发明提供一种微服务的数据同步装置,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的微服务的数据同步程序,所述微服务的数据同步程序被所述处理器执行,以实现如上所述的微服务的数据同步方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务的数据同步程序,所述微服务的数据同步程序可被一个或者多个处理器执行,以实现如上所述的微服务的数据同步方法的步骤。
本发明提出的微服务的数据同步方法、装置及计算机可读存储介质,在用户进行微服务的数据同步时,利用一致性哈希算法提供的虚拟节点对原始微服务的负载均衡场景进行动态增删,从而实现负载均衡场景的均匀分配;通过预先创建的单元服务器组向所述标准负载均衡场景进行实时数据读取,得到实时数据集,所创建的单元服务器可以支持高并发的数据读取操作,提高系统的响应速度;将所述实时数据集输入至所述单元服务器组的单元节点中,通过消息中间件实现所述单元节点之间的实时数据同步,从而保证了基于微服务场景下的数据一致性。
附图说明
图1为本发明一实施例提供的微服务的数据同步方法的流程示意图;
图2为本发明一实施例提供的微服务的数据同步装置的内部结构示意图;
图3为本发明一实施例提供的微服务的数据同步装置中微服务的数据同步程序的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种微服务的数据同步方法。参照图1所示,为本发明一实施例提供的微服务的数据同步方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,微服务的数据同步方法包括:
S1、基于预先构建的一致性哈希算法对原始微服务的负载均衡场景进行动态增删,得到标准负载均衡场景,其中,所述标准负载均衡场景包括微服务的实例负载监控、微服务的实例状态变化检测。
本发明较佳实施例中,所述一致性哈希算法的核心思想为将普通哈希算法中的节点选择标准从一个具体的值转换为一段范围,所述一段范围可以表示为闭合环上的某一小段连续的范围。进一步地,本发明中所述预先构建的一致性哈希算法包括:预设虚拟节点的数目、构建所述虚拟节点的数据存储结构以及选择所述虚拟节点的散列函数。
详细地,本发明较佳实施例中所述预先构建的一致性哈希算法如下所示:
a、通过预设虚拟节点数目实现存储空间分配的均衡性。例如,某系统中只有两个物理节点,如果没有虚拟节点存在,由于哈希算法一定程度上的随机性,很难将用户请求均匀地分配到这两个节点中。如果将所述系统中的两个物理节点分成200个虚拟节点并映射到存储空间中,根据所述200个虚拟节点来进行哈希,可以大大提高了存储空间分配的均衡性。于是,当系统物理节点较少时,需要增加虚拟节点数目的设置,而当物理节点较多时则应该减少虚拟节点的设置。本发明可以根据具体物理节点的数量来设置合适的虚拟节点的数目。
b、采用Java中的TreeMap数据结构来实现所述虚拟节点的数据存储结构的构建,所述TreeMap数据结构通过红黑树实现所述节点的存储。
c、将MurMurHash函数作为所述虚拟节点的散列函数。其中,所述MurMurHash算法指的是非加密性哈希函数,通过所述MurMurHash函数实现所述虚拟节点的哈希检索操作。
进一步地,本发明中所述原始微服务的负载均衡场景指的是将任务分摊到多个单元服务器上进行共同完成,其中,所述操作单元可以包括Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等。本发明较佳实施例通过所述一致性哈希算法提供的虚拟节点实现微服务的负载均衡场景中实例的动态增删,得到标准负载均衡场景。例如以每个调用者都将其请求发往同一个微服务实例作为所述微服务的负载均衡场景,其中,当所述实例崩溃而不可用的时,改变所述一致性哈希算法中虚拟节点的数目,可以将所述实例要接收的请求均匀分布到其他可用微服务实例上。
较佳地,本发明中所述标准负载均衡场景包括微服务的实例负载监控、微服务的实例状态变化检测。详细地,所述微服务的实例负载监控包括:微服务的实例调用、微服务的实例并发以及微服务的实例数据更新。本发明通过负载均衡定时检测所述微服务的实例状态变化是否为实例增加和/或删除。当所述微服务的实例状态变化是实例增加和/或删除时,采用一致性哈希算法对所述实例请求进行重新分配,并将分配结果返回对应的调用者;当所述微服务的实例状态变化不是实例增加和/或删除时,报告所述实例运行的负载状态,并定时判断所述实例的负载状态是否达到预设的负载阀值,当没有达到所述预设的负载阈值时,则不做请求的调整,当达到所述预设的负载阈值时,则将所述微服务的实例部分请求均匀地分配到其他未超过负载阀值的微服务的实例中,并根据所述负载均衡定时检测的结果,调用者可以修改本地缓存的微服务地址信息,从而减少系统之间的耦合性。
S2、通过预先创建的单元服务器组向所述标准负载均衡场景进行实时数据读取,得到实时数据集。
本发明较佳实施例在所述微服务的负载均衡场景下,通过Redis构建所述单元服务器组。所述Redis是开源的、基于内存的键值对存储系统,提供了字符串、列表、集合、哈希对象等丰富的数据结构。较佳地,本发明中所述通过Redis构建所述单元服务器包括:构建所述单元服务器的存储数据结构、选择所述单元服务器持久化方式、利用Redis的复制功能实现所述单元服务器的数据备份以及存储所述单元服务器固定的数据。
进一步地,所述构建所述单元服务器存储数据结构包括:利用Redis提供的数据类型选择数据结构以便于分类存储和快速检索。由于所述Redis提供的键值支持二进制安全的功能,所以本发明在键的形式的选择上可以采用任何形式的二进制序列。比如,对微服务实例的状态属性的键的形式可以设置为字符串“microservice:instance:state:instanceId”,微服务实例实时的位置信息则可以设置为字符串“service_id:instance_id:url”,通过所述多个字段和符号间隔而组成键的模式具备良好的结构性,可以对Redis中数据进行快速的分类和查找。
进一步地,所述选择所述单元服务器持久化方式包括:通过所述Redis中AOF(Append Only File)持久化方式进行数据的持久化。所述AOF采用保存所述Redis执行的写命令的方式来持久化数据库的状态,并且还提供了AOF重写的机制来降低AOF文件中的冗余度,从而提高存储效率。
进一步地,所述利用Redis的复制功能实现所述单元服务器的数据备份包括:选择所述单元服务器中某一个单元服务器作为主单元服务器,通过所述Redis的laveof命令和slaveof配置属性将剩余单元服务器设置为所述主单元服务器的从单元服务器;启动所述从单元服务器后向所述主单元服务器发送同步的命令,通过所述主单元服务器启动后台进程来生成内存数据的快照,同时记录在生成快照期间新执行的写命令,完成所述主单元服务器的数据备份。如果有多个从单元服务器同时请求同步的时候,所述主单元服务器只需要执行一次bgsave命令就可以处理所述多个从单元服务器的同步请求。
进一步地,所述结合mysql存储所述单元服务器固定的数据包括:结合MySQL存储微服务属性中固定的数据,所述固定的数据可以为微服务的名称属性,版本属性,容量属性,提供者信息等。
进一步地,本发明较佳实施例根据所述搭建的单元服务器可以向所述微服务的负载均衡场景进行实时数据的读取,得到实时数据集,其中,所述单元服务器可以支持高并发的数据读取操作,提高系统的响应速度。
S3、将所述实时数据集输入至所述预先创建的单元服务器组的单元节点中,通过消息中间件实现所述单元节点之间的实时数据同步。
本发明较佳实施例中,所述单元节点根据实时数据的属性以及用户的需求在所述单元服务器组中进行构建得到,所述实时数据的属性可以为字段名,参数类型等,所述用户的需求可以为实时获取数据,不实时获取数据等。较佳地,本发明中所述消息中间件为MQ消息中间件,所述MQ消息中间件指的是能够有效的保证及支持在分布式应用系统中,通过同步或异步的机制进行消息收发的中间件系统。通过所述MQ消息中间件可以实现所述预先构建的单元节点之间的实时数据同步,从而保证了基于微服务场景下的数据一致性。
发明还提供一种微服务的数据同步装置。参照图2所示,为本发明一实施例提供的微服务的数据同步装置的内部结构示意图。
在本实施例中,所述微服务的数据同步装置1可以是PC(Personal Computer,个人电脑),或者是智能手机、平板电脑、便携计算机等数据处理设备,也可以是一种服务器等。该微服务的数据同步装置1至少包括存储器11、处理器12,通信总线13,以及网络接口14。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是微服务的数据同步装置1的内部存储单元,例如该微服务的数据同步装置1的硬盘。存储器11在另一些实施例中也可以是微服务的数据同步装置1的外部存储设备,例如微服务的数据同步装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括微服务的数据同步装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于微服务的数据同步装置1的应用软件及各类数据,例如微服务的数据同步程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行微服务的数据同步程序01等。
通信总线13用于实现这些组件之间的连接通信。
网络接口14可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该装置1与其他电子设备之间建立通信连接。
可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在微服务的数据同步装置1中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11-14以及微服务的数据同步程序01的微服务的数据同步装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对微服务的数据同步装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图2所示的装置1实施例中,存储器11中存储有微服务的数据同步程序01;处理器12执行存储器11中存储的微服务的数据同步程序01时实现如下步骤:
步骤一、基于预先构建的一致性哈希算法对原始微服务的负载均衡场景进行动态增删,得到标准负载均衡场景,其中,所述标准负载均衡场景包括微服务的实例负载监控、微服务的实例状态变化检测。
本发明较佳实施例中,所述一致性哈希算法的核心思想为将普通哈希算法中的节点选择标准从一个具体的值转换为一段范围,所述一段范围可以表示为闭合环上的某一小段连续的范围。进一步地,本发明中所述预先构建的一致性哈希算法包括:预设虚拟节点的数目、构建所述虚拟节点的数据存储结构以及选择所述虚拟节点的散列函数。
详细地,本发明较佳实施例中所述预先构建的一致性哈希算法如下所示:
a、通过预设虚拟节点数目实现存储空间分配的均衡性。例如,某系统中只有两个物理节点,如果没有虚拟节点存在,由于哈希算法一定程度上的随机性,很难将用户请求均匀地分配到这两个节点中。如果将所述系统中的两个物理节点分成200个虚拟节点并映射到存储空间中,根据所述200个虚拟节点来进行哈希,可以大大提高了存储空间分配的均衡性。于是,当系统物理节点较少时,需要增加虚拟节点数目的设置,而当物理节点较多时则应该减少虚拟节点的设置。本发明可以根据具体物理节点的数量来设置合适的虚拟节点的数目。
b、采用Java中的TreeMap数据结构来实现所述虚拟节点的数据存储结构的构建,所述TreeMap数据结构通过红黑树实现所述节点的存储。
c、将MurMurHash函数作为所述虚拟节点的散列函数。其中,所述MurMurHash算法指的是非加密性哈希函数,通过所述MurMurHash函数实现所述虚拟节点的哈希检索操作。
进一步地,本发明中所述原始微服务的负载均衡场景指的是将任务分摊到多个单元服务器上进行共同完成,其中,所述操作单元可以包括Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等。本发明较佳实施例通过所述一致性哈希算法提供的虚拟节点实现微服务的负载均衡场景中实例的动态增删,得到标准负载均衡场景。例如以每个调用者都将其请求发往同一个微服务实例作为所述微服务的负载均衡场景,其中,当所述实例崩溃而不可用的时,改变所述一致性哈希算法中虚拟节点的数目,可以将所述实例要接收的请求均匀分布到其他可用微服务实例上。
较佳地,本发明中所述标准负载均衡场景包括微服务的实例负载监控、微服务的实例状态变化检测。详细地,所述微服务的实例负载监控包括:微服务的实例调用、微服务的实例并发以及微服务的实例数据更新。本发明通过负载均衡定时检测所述微服务的实例状态变化是否为实例增加和/或删除。当所述微服务的实例状态变化是实例增加和/或删除时,采用一致性哈希算法对所述实例请求进行重新分配,并将分配结果返回对应的调用者;当所述微服务的实例状态变化不是实例增加和/或删除时,报告所述实例运行的负载状态,并定时判断所述实例的负载状态是否达到预设的负载阀值,当没有达到所述预设的负载阈值时,则不做请求的调整,当达到所述预设的负载阈值时,则将所述微服务的实例部分请求均匀地分配到其他未超过负载阀值的微服务的实例中,并根据所述负载均衡定时检测的结果,调用者可以修改本地缓存的微服务地址信息,从而减少系统之间的耦合性。
步骤二、通过预先创建的单元服务器组向所述标准负载均衡场景进行实时数据读取,得到实时数据集。
本发明较佳实施例基于在所述微服务的负载均衡场景下,通过Redis构建所述单元服务器组。所述Redis是开源的、基于内存的键值对存储系统,提供了字符串、列表、集合、哈希对象等丰富的数据结构。较佳地,本发明中所述通过Redis构建所述单元服务器包括:构建所述单元服务器的存储数据结构、选择所述单元服务器持久化方式、利用Redis的复制功能实现所述单元服务器的数据备份以及存储所述单元服务器固定的数据。
进一步地,所述构建所述单元服务器存储数据结构包括:利用Redis提供的数据类型选择数据结构以便于分类存储和快速检索。由于所述Redis提供的键值支持二进制安全的功能,所以本发明在键的形式的选择上可以采用任何形式的二进制序列。比如,对微服务实例的状态属性的键的形式可以设置为字符串“microservice:instance:state:instanceId”,微服务实例实时的位置信息则可以设置为字符串“service_id:instance_id:url”,通过所述多个字段和符号间隔而组成键的模式具备良好的结构性,可以对Redis中数据进行快速的分类和查找。
进一步地,所述选择所述单元服务器持久化方式包括:通过所述Redis中AOF(Append Only File)持久化方式进行数据的持久化。所述AOF采用保存所述Redis执行的写命令的方式来持久化数据库的状态,并且还提供了AOF重写的机制来降低AOF文件中的冗余度,从而提高存储效率。
进一步地,所述利用Redis的复制功能实现所述单元服务器的数据备份包括:选择所述单元服务器中某一个单元服务器作为主单元服务器,通过所述Redis的laveof命令和slaveof配置属性将剩余单元服务器设置为所述主单元服务器的从单元服务器;启动所述从单元服务器后向所述主单元服务器发送同步的命令,通过所述主单元服务器启动后台进程来生成内存数据的快照,同时记录在生成快照期间新执行的写命令,完成所述主单元服务器的数据备份。如果有多个从单元服务器同时请求同步的时候,所述主单元服务器只需要执行一次bgsave命令就可以处理所述多个从单元服务器的同步请求。
进一步地,所述结合mysql存储所述单元服务器固定的数据包括:结合MySQL存储微服务属性中固定的数据,所述固定的数据可以为微服务的名称属性,版本属性,容量属性,提供者信息等。
进一步地,本发明较佳实施例根据所述搭建的单元服务器可以向所述微服务的负载均衡场景进行实时数据的读取,得到实时数据集,其中,所述单元服务器可以支持高并发的数据读取操作,提高系统的响应速度。
步骤三、将所述实时数据集输入至所述预先创建的单元服务器组的单元节点中,通过消息中间件实现所述单元节点之间的实时数据同步。
本发明较佳实施例中,所述单元节点根据实时数据的属性以及用户的需求在所述单元服务器组中进行构建得到,所述实时数据的属性可以为字段名,参数类型等,所述用户的需求可以为实时获取数据,不实时获取数据等。较佳地,本发明中所述消息中间件为MQ消息中间件,所述MQ消息中间件指的是能够有效的保证及支持在分布式应用系统中,通过同步或异步的机制进行消息收发的中间件系统。通过所述MQ消息中间件可以实现所述预先构建的单元节点之间的实时数据同步,从而保证了基于微服务场景下的数据一致性。
可选地,在其他实施例中,本发明所述微服务的数据同步程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述微服务的数据同步程序在微服务的数据同步装置中的执行过程。
例如,参照图3所示,为本发明微服务的数据同步装置一实施例中的微服务的数据同步程序的程序模块示意图,该实施例中,所述微服务的数据同步程序可以被分割为负载均衡场景创建模块10、实时数据读取模块20以及实时数据同步模块30,示例性地:
所述负载均衡场景创建模块10用于:基于预先构建的一致性哈希算法对原始微服务的负载均衡场景进行动态增删,得到标准负载均衡场景,其中,所述标准负载均衡场景包括微服务的实例负载监控和微服务的实例状态变化检测。
所述实时数据读取模块20用于:通过预先创建的单元服务器组向所述标准负载均衡场景进行实时数据读取,得到实时数据集。
所述实时数据同步模块30用于:将所述实时数据集输入至所述预先创建的单元服务器组的单元节点中,通过消息中间件实现所述单元节点之间的实时数据同步。
上述负载均衡场景创建模块10、实时数据读取模块20以及实时数据同步模块30等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
优选地,本发明所述负载均衡场景创建模块10、实时数据读取模块20以及实时数据同步模块30可以组成一个微服务的数据同步系统,如可以安装在用户手机或者电脑上的一个APP。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务的数据同步程序,所述微服务的数据同步程序可被一个或多个处理器执行,以实现如下操作:
基于预先构建的一致性哈希算法对原始微服务的负载均衡场景进行动态增删,得到标准负载均衡场景,其中,所述标准负载均衡场景包括微服务的实例负载监控和微服务的实例状态变化检测;
通过预先创建的单元服务器组向所述标准负载均衡场景进行实时数据读取,得到实时数据集;
将所述实时数据集输入至所述预先创建的单元服务器组的单元节点中,通过消息中间件实现所述单元节点之间的实时数据同步。
本发明计算机可读存储介质具体实施方式与上述微服务的数据同步装置和方法各实施例基本相同,在此不作累述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种微服务的数据同步方法,其特征在于,所述方法包括:
基于预先构建的一致性哈希算法对原始微服务的负载均衡场景进行动态增删,得到标准负载均衡场景,其中,所述标准负载均衡场景包括微服务的实例负载监控和微服务的实例状态变化检测;
通过预先创建的单元服务器组向所述标准负载均衡场景进行实时数据读取,得到实时数据集;
将所述实时数据集输入至所述预先创建的单元服务器组的单元节点中,通过消息中间件实现所述单元节点之间的实时数据同步。
2.如权利要求1所述的微服务的数据同步方法,其特征在于,所述预先构建的一致性哈希算法包括:
预设虚拟节点的数目,以实现存储空间分配的均衡性;
采用TreeMap数据结构对所述虚拟节点的数据存储结构进行构建,所述TreeMap数据结构通过红黑树实现所述节点的存储;
选择所述虚拟节点的散列函数,通过所述散列函数实现所述虚拟节点的哈希检索操作。
3.如权利要求1所述的微服务的数据同步方法,其特征在于,所述原始微服务的负载均衡场景包括将任务分摊到多个单元服务器上共同完成,其中,所述操作单元包括Web服务器、FTP服务器、企业关键应用服务器。
4.如权利要求1至3中任意一项所述的微服务的数据同步方法,其特征在于,所述微服务的实例负载监控包括:微服务的实例调用、微服务的实例并发以及微服务的实例数据更新。
5.如权利要求1至3中任意一项所述的微服务的数据同步方法,其特征在于,所述微服务的实例状态变化检测包括:
通过负载均衡定时检测所述微服务的实例状态变化是否为实例增加和/或删除;
当所述微服务的实例状态变化是实例增加和/或删除时,采用所述一致性哈希算法对所述实例请求进行重新分配,并将分配结果返回对应的调用者;
当所述微服务的实例状态变化不是实例增加和/或删除时,报告所述实例运行的负载状态,并定时判断所述实例的负载状态是否达到预设的负载阀值。
6.如权利要求1至3中任意一项所述的微服务的数据同步方法,其特征在于,所述方法还包括:
构建所述单元服务器组存储数据结构、选择所述单元服务器组持久化方式、利用Redis的复制功能实现所述单元服务器组的数据备份以及存储所述单元服务器组固定的数据,以完成对所述单元服务器组的创建。
7.如权利要求6所述的微服务的数据同步方法,其特征在于,所述利用Redis的复制功能实现所述单元服务器组的数据备份,包括:
选择所述单元服务器组其中一个单元服务器作为主单元服务器,通过所述Redis的laveof命令和slaveof配置属性将所述单元服务器组中剩余单元服务器设置为所述主单元服务器的从单元服务器;
启动所述从单元服务器,向所述主单元服务器发送同步的命令,通过所述主单元服务器启动后台进程来生成内存数据的快照,同时记录生成快照期间新执行的写命令,完成所述单元服务器组中主单元服务器的数据备份。
8.一种微服务的数据同步系统,其特征在于,该系统包括一个或者多个功能模块,该功能模块存储在数据处理设备的存储器中,并由所述数据处理设备的处理器执行时实现如权利要求1至7中任一项所述的微服务的数据同步方法的步骤。
9.一种微服务的数据同步装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的微服务的数据同步程序,所述微服务的数据同步程序被所述处理器执行时实现如权利要求1至7中任一项所述的微服务的数据同步方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有微服务的数据同步程序,所述微服务的数据同步程序可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的微服务的数据同步方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010025271.8A CN111209120A (zh) | 2020-01-09 | 2020-01-09 | 微服务的数据同步方法、装置及计算机可读存储介质 |
PCT/CN2020/131898 WO2021139431A1 (zh) | 2020-01-09 | 2020-11-26 | 微服务的数据同步方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010025271.8A CN111209120A (zh) | 2020-01-09 | 2020-01-09 | 微服务的数据同步方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111209120A true CN111209120A (zh) | 2020-05-29 |
Family
ID=70786702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010025271.8A Pending CN111209120A (zh) | 2020-01-09 | 2020-01-09 | 微服务的数据同步方法、装置及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111209120A (zh) |
WO (1) | WO2021139431A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112929424A (zh) * | 2021-01-26 | 2021-06-08 | 成都佳发安泰教育科技股份有限公司 | 网关负载均衡的方法、装置、设备及存储介质 |
WO2021139431A1 (zh) * | 2020-01-09 | 2021-07-15 | 平安科技(深圳)有限公司 | 微服务的数据同步方法、装置、电子设备及存储介质 |
CN113689103A (zh) * | 2021-08-18 | 2021-11-23 | 国电南瑞南京控制系统有限公司 | 自适应负载均衡用采分流智能调度管理方法、装置及系统 |
CN114077639A (zh) * | 2020-08-20 | 2022-02-22 | 北京字节跳动网络技术有限公司 | 数据写入方法、装置、电子设备和存储介质 |
CN115242812A (zh) * | 2022-07-25 | 2022-10-25 | 济南浪潮数据技术有限公司 | 一种节点数据同步方法、装置及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197714B2 (en) * | 2001-02-09 | 2007-03-27 | Autodesk, Inc. | Optimizing graphical data synchronization between a graphical client and a stateless server |
CN101355518A (zh) * | 2008-09-08 | 2009-01-28 | 北京航空航天大学 | 一种基于路径组合的多服务器动态区域调整方法 |
CN106506605B (zh) * | 2016-10-14 | 2020-09-22 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
CN111209120A (zh) * | 2020-01-09 | 2020-05-29 | 平安科技(深圳)有限公司 | 微服务的数据同步方法、装置及计算机可读存储介质 |
-
2020
- 2020-01-09 CN CN202010025271.8A patent/CN111209120A/zh active Pending
- 2020-11-26 WO PCT/CN2020/131898 patent/WO2021139431A1/zh active Application Filing
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021139431A1 (zh) * | 2020-01-09 | 2021-07-15 | 平安科技(深圳)有限公司 | 微服务的数据同步方法、装置、电子设备及存储介质 |
CN114077639A (zh) * | 2020-08-20 | 2022-02-22 | 北京字节跳动网络技术有限公司 | 数据写入方法、装置、电子设备和存储介质 |
CN112929424A (zh) * | 2021-01-26 | 2021-06-08 | 成都佳发安泰教育科技股份有限公司 | 网关负载均衡的方法、装置、设备及存储介质 |
CN112929424B (zh) * | 2021-01-26 | 2022-11-15 | 成都佳发安泰教育科技股份有限公司 | 网关负载均衡的方法、装置、设备及存储介质 |
CN113689103A (zh) * | 2021-08-18 | 2021-11-23 | 国电南瑞南京控制系统有限公司 | 自适应负载均衡用采分流智能调度管理方法、装置及系统 |
CN113689103B (zh) * | 2021-08-18 | 2023-11-24 | 国电南瑞南京控制系统有限公司 | 自适应负载均衡用采分流智能调度管理方法、装置及系统 |
CN115242812A (zh) * | 2022-07-25 | 2022-10-25 | 济南浪潮数据技术有限公司 | 一种节点数据同步方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021139431A1 (zh) | 2021-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11711420B2 (en) | Automated management of resource attributes across network-based services | |
CN111209120A (zh) | 微服务的数据同步方法、装置及计算机可读存储介质 | |
US10452484B2 (en) | Systems and methods for time-based folder restore | |
AU2015336357B2 (en) | Composite partition functions | |
US9672274B1 (en) | Scalable message aggregation | |
CN109032803B (zh) | 数据处理方法和装置、客户端 | |
US10545991B2 (en) | Synchronizing local and remote data | |
US11010401B2 (en) | Efficient snapshot generation of data tables | |
US10169348B2 (en) | Using a file path to determine file locality for applications | |
CN102938784A (zh) | 应用于分布式存储系统中的数据存储方法和系统 | |
JP2015527008A (ja) | コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム | |
CN109145053B (zh) | 数据处理方法和装置、客户端、服务器 | |
CN109088914B (zh) | 区块的生成方法、区块链生态系统及计算机可读存储介质 | |
CN113254445A (zh) | 实时数据存储方法、装置、计算机设备及存储介质 | |
CN116578746A (zh) | 对象去重方法及装置 | |
CN113806300A (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
CN109614271B (zh) | 多个集群数据一致性的控制方法、装置、设备及存储介质 | |
CN114070847A (zh) | 服务器的限流方法、装置、设备及存储介质 | |
San Román Guzmán et al. | Design of a New Distributed NoSQL Database with Distributed Hash Tables | |
CN113986833A (zh) | 文件合并方法、系统、计算机系统及存储介质 | |
CN109032804B (zh) | 数据处理方法和装置、服务器 | |
WO2020151337A1 (zh) | 分布式文件处理方法、装置、计算机设备以及存储介质 | |
US11017032B1 (en) | Document recovery utilizing serialized data | |
US10310889B1 (en) | Data statistics service | |
US10015248B1 (en) | Syncronizing changes to stored data among multiple client devices |
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 |