CN112187548A - 配置数据同步更新方法、装置、设备及存储介质 - Google Patents
配置数据同步更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112187548A CN112187548A CN202011073530.0A CN202011073530A CN112187548A CN 112187548 A CN112187548 A CN 112187548A CN 202011073530 A CN202011073530 A CN 202011073530A CN 112187548 A CN112187548 A CN 112187548A
- Authority
- CN
- China
- Prior art keywords
- service
- target
- configuration
- version number
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000008859 change Effects 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 7
- 230000001360 synchronised effect Effects 0.000 claims description 28
- 239000000126 substance Substances 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 9
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及数据处理技术,提供了一种配置数据同步更新方法、装置、设备及存储介质。通过将第一服务的数据包广播至第一服务所属网络的目标服务,判断各目标服务的配置版本号和第一服务的配置版本号是否相同,当不同时,更新该目标服务或第一服务的配置数据,当任一目标服务的配置版本号与第一服务的配置版本号均相同,且存在任一目标服务的配置版本号的变更对象与第一服务的配置版本号的变更对象不同时,基于各目标服务作为变更对象的次数执行投票,将得票数最高的目标服务的配置数据作为第一目标配置数据,基于第一目标配置数据更新各目标服务的配置数据。本发明还涉及区块链技术,第一服务的数据包、目标配置数据均可存储于区块链节点中。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种配置数据同步更新方法、装置、设备及存储介质。
背景技术
目前,在多模块系统或者微服务架构下,应用配置通常有两种方式:1、使用微服务配置中心托管配置。2、应用程序提供导入导出功能,在不同服务间人工同步配置。然而,第一个方案,Spring Cloud的配置中心只提供配置文件同步,其针对场景仅是为微服务在不同环境下提供一站式的配置文件托管服务,其无法支持复杂的业务数据配置。第二个方案,虽然在一定程度上解决了配置同步问题,但是当不同服务配置被更改时,会导致配置差异,以至于之后导入配置会产生冲突。
发明内容
鉴于以上内容,本发明提供一种配置数据同步更新方法、装置、设备及存储介质,其目的在于解决现有技术中配置数据无法同步更新的技术问题。
为实现上述目的,本发明提供一种配置数据同步更新方法,该方法包括:
当第一服务启动时,将所述第一服务的数据包广播至第一服务所属网络的多个目标服务,所述数据包包括所述第一服务的配置版本号及配置版本号的变更对象;
从每个目标服务的数据报文中获取该目标服务的配置版本号及配置版本号的变更对象,将所有目标服务的配置版本号和第一服务的配置版本号进行对比,当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据;
当判断所有目标服务的配置版本号与所述第一服务的配置版本号均相同,且任一目标服务的配置版本号的变更对象与所述第一服务的配置版本号的变更对象不同时,基于各目标服务作为变更对象的次数执行投票操作,将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据。
优选的,所述方法还包括:
分别判断各所述目标服务中是否存在所述第一服务的数据包信息,根据判断结果分别将所述第一服务的数据包信息添加至各所述目标服务对应的服务列表中。
优选的,所述方法还包括:
当判断任一目标服务中不存在所述第一服务的数据包信息时,将所述第一服务的名称注册到该目标服务的服务列表中。
优选的,所述当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据包括:
当所述第一服务的配置版本号高于一个目标服务的配置版本号时,接收该目标服务向所述第一服务发送的数据同步请求,基于该请求及所述第一服务的配置版本号更新该目标服务的配置数据;
当所述第一服务的配置版本号低于一个目标服务的配置版本号时,获取该目标服务向所述第一服务发出的第一更新指令,接收所述第一服务基于所述第一更新指令向该目标服务发出的数据同步请求,基于该请求及该目标服务的配置版本号更新所述第一服务的配置数据。
优选的,所述方法还包括:
当所述第一服务的配置版本号低于第一预设数量的目标服务的配置版本号时,随机从所述第一预设数量的目标服务中选取一个目标服务,获取该目标服务向所述第一服务发出的第二更新指令,接收所述第一服务基于所述第二更新指令向该目标服务发出的数据同步请求,基于该请求及该目标服务的配置版本号更新所述第一服务的配置数据。
优选的,所述将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据包括:
从得票数最高的目标服务的服务列表随机选取第二预设数量的目标服务,将所述第一目标配置数据分别发送至所述第二预设数量的目标服务,从所述第二预设数量的目标服务的服务列表中随机选取第三预设数量的目标服务,依次递归更新,直至所述网络中各服务的配置版本号相同。
优选的,所述方法还包括:
当第一服务处于运行状态时,将所述第一服务的数据包广播至该第一服务所属网络的目标服务,当存在任一目标服务的配置版本号与所述第一服务的配置版本号不同时,基于各目标服务作为配置版本号的变更对象的次数进行投票,将得票数最高的目标服务的配置数据作为第二目标配置数据,基于所述第二目标配置数据更新各目标服务的配置数据。
为实现上述目的,本发明还提供一种配置数据同步更新装置,该配置数据同步更新装置包括:
广播模块:用于当第一服务启动时,将所述第一服务的数据包广播至第一服务所属网络的多个目标服务,所述数据包包括所述第一服务的配置版本号及配置版本号的变更对象;
第一更新模块:用于从每个目标服务的数据报文中获取该目标服务的配置版本号及配置版本号的变更对象,将所有目标服务的配置版本号和第一服务的配置版本号进行对比,当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据;
第二更新模块:用于当判断所有目标服务的配置版本号与所述第一服务的配置版本号均相同,且任一目标服务的配置版本号的变更对象与所述第一服务的配置版本号的变更对象不同时,基于各目标服务作为变更对象的次数执行投票操作,将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据。
为实现上述目的,本发明还提供一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的程序,所述程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的配置数据同步更新方法的任意步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括存储数据区和存储程序区,存储程序区存储有配置数据同步更新程序,所述配置数据同步更新程序被处理器执行时,实现如上所述配置数据同步更新方法的任意步骤。
本发明提出的配置数据同步更新方法、装置、设备及存储介质,通过将第一服务的数据包广播至该第一服务所属网络的目标服务,目标服务接收到广播后,将配置版本信息进行对比,根据比较结果更新该目标服务或第一服务的配置数据,若比较结果相同,根据各目标服务作为配置版本号的变更对象的次数进行投票,将得票数最高的目标服务的配置数据作为目标配置数据,根据目标配置数据实现服务之间的配置数据一致,减少了不必要的服务开支,各个服务不需要关心关联服务,只需要在意自身的业务逻辑,节约了人工同步配置的成本,提升了配置数据同步的效率。
附图说明
图1为本发明电子设备较佳实施例的示意图;
图2为图1中配置数据同步更新装置较佳实施例的模块示意图;
图3为本发明配置数据同步更新方法较佳实施例的流程图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1所示,为本发明电子设备1较佳实施例的示意图。
该电子设备1包括但不限于:存储器11、处理器12、显示器13及网络接口14。所述电子设备1通过网络接口14连接网络,获取原始数据。其中,所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobilecommunication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi、通话网络等无线或有线网络。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述电子设备1的内部存储单元,例如该电子设备1的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述电子设备1的外部存储设备,例如该电子设备1配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器11还可以既包括所述电子设备1的内部存储单元也包括其外部存储设备。本实施例中,存储器11通常用于存储安装于所述电子设备1的操作系统和各类应用软件,例如配置数据同步更新程序10的程序代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子设备1的总体操作,例如执行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行配置数据同步更新程序10的程序代码等。
显示器13可以称为显示屏或显示单元。在一些实施例中显示器13可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-EmittingDiode,OLED)触摸器等。显示器13用于显示在电子设备1中处理的信息以及用于显示可视化的工作界面,例如显示数据统计的结果。
网络接口14可选地可以包括标准的有线接口、无线接口(如WI-FI接口),该网络接口14通常用于在所述电子设备1与其它电子设备之间建立通信连接。
图1仅示出了具有组件11-14以及配置数据同步更新程序10的电子设备1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,所述电子设备1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
该电子设备1还可以包括射频(Radio Frequency,RF)电路、传感器和音频电路等等,在此不再赘述。
在上述实施例中,处理器12执行存储器11中存储的配置数据同步更新程序10时可以实现如下步骤:
当第一服务启动时,将所述第一服务的数据包广播至第一服务所属网络的多个目标服务,所述数据包包括所述第一服务的配置版本号及配置版本号的变更对象;
从每个目标服务的数据报文中获取该目标服务的配置版本号及配置版本号的变更对象,将所有目标服务的配置版本号和第一服务的配置版本号进行对比,当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据;
当判断所有目标服务的配置版本号与所述第一服务的配置版本号均相同,且任一目标服务的配置版本号的变更对象与所述第一服务的配置版本号的变更对象不同时,基于各目标服务作为变更对象的次数执行投票操作,将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据。
所述存储设备可以为电子设备1的存储器11,也可以为与电子设备1通讯连接的其它存储设备。
关于上述步骤的详细介绍,请参照下述图2关于配置数据同步更新装置100实施例的功能模块图以及图3关于配置数据同步更新方法实施例的流程图的说明。
参照图2所示,为本发明配置数据同步更新装置100的功能模块图。
本发明所述配置数据同步更新装置100可以安装于电子设备中。根据实现的功能,所述配置数据同步更新装置100可以包括广播模块110、第一更新模块120及第二更新模块130。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
广播模块110,用于当第一服务启动时,将所述第一服务的数据包广播至第一服务所属网络的多个目标服务,所述数据包包括所述第一服务的配置版本号及配置版本号的变更对象。
在本实施例中,以某商城应用系统为例对本实施例进行说明,但本方案的应用场景并不仅限于商城系统。商城系统有多个服务组成,例如,订单服务、客服服务、运营服务、商品评论服务等,第一服务可以是任意一个服务,目标服务可以是指第一服务所属局域网中除第一服务之外的其它服务,当某商城应用系统的任意一个服务启动时,将第一服务的数据包广播至该第一服务所属网络的目标服务,通知当前所有网络下其他服务,当期实例已启动,例如,可以使用UDP将第一服务的数据包广播至第一服务所属局域网的各个服务,第一服务的数据包信息包括服务的名称、IP、最新配置版本号以及配置版本号的变更对象。需要说明的是,本申请所述的配置版本号的变更对象是指上一次更新或同步某服务的服务名称,例如,在商城应用系统中,若订单服务的最新配置数据被运营服务更新了,则运营服务作为订单服务的配置版本号的变更对象。
在一个实施例中,广播模块还用于分别判断各所述目标服务中是否存在所述第一服务的数据包信息,根据判断结果分别将所述第一服务的数据包信息添加至各所述目标服务对应的服务列表中。
判断各目标服务中是否存在第一服务的数据包信息,根据判断结果将第一服务的数据包信息添加至目标服务对应的服务列表中,其中,服务列表的数据结构为双层字典,第一层字典为服务名称(及服务名称),第二层字段中存储服务的IP。具体地,判断各目标服务中是否存在第一服务的数据包信息可以通过目标服务的本地缓存判断,每个目标服务都有本地缓存,本地缓存为双层缓存,第一层为服务(服务)名称,第二层为服务实例地址。通常一个服务会存在多个实例,如下表:
进一步地,当判断任一目标服务中不存在所述第一服务的数据包信息时,将所述第一服务的名称注册到该目标服务的服务列表中。
若判断任一目标服务中已存在第一服务的数据包信息,则在该目标服务的服务列表的第二层字典下新增第一服务的IP地址。
服务列表用于存储当前局域网中服务、IP信息等,如果局域网中某个目标服务的服务列表不存在第一服务的数据包信息,则需要将第一服务的名称注册到该目标服务的服务列表中,若局域网中某个目标服务已经存在第一服务的数据包信息,则需要在该目标服务的服务列表的第二层字典下新增第一服务的IP地址
第一更新模块120,用于从每个目标服务的数据报文中获取该目标服务的配置版本号及配置版本号的变更对象,将所有目标服务的配置版本号和第一服务的配置版本号进行对比,当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据。
在本实施例中,可以从目标服务的数据报文中获取到配置版本号和配置版本号的变更对象,目标服务的数据报文为json格式,按括号解析该报文数据可以获取目标服务的配置版本号和配置版本号的变更对象,将目标服务的配置版本号和第一服务的配置版本号进行对比,当目标服务的配置版本号与第一服务的配置版本号不同时,根据对比结果更新局域网中目标服务或者第一服务的配置数据。
需要说明的是,本申请所述的配置版本号的变更对象是指上一次更新或同步某服务的服务名称,例如,在商城应用系统中,若订单服务的最新配置数据被运营服务更新了,则运营服务作为订单服务的配置版本号的变更对象。
在一个实施例中,所述当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据包括:
当所述第一服务的配置版本号高于一个目标服务的配置版本号时,接收该目标服务向所述第一服务发送的数据同步请求,基于该请求及所述第一服务的配置版本号更新该目标服务的配置数据;
当所述第一服务的配置版本号低于一个目标服务的配置版本号时,获取该目标服务向所述第一服务发出的第一更新指令,接收所述第一服务基于所述第一更新指令向该目标服务发出的数据同步请求,基于该请求及该目标服务的配置版本号更新所述第一服务的配置数据。
第一服务的配置版本号高于某个目标服务的配置版本号时,根据第一服务的配置版本号更新该目标服务的配置数据,第一服务的配置版本号低于一个目标服务的配置版本号时,根据目标服务的配置版本号更新第一服务的配置数据实现配置同步。
进一步地,当所述第一服务的配置版本号低于第一预设数量的目标服务的配置版本号时,随机从所述第一预设数量的目标服务中选取一个目标服务,获取该目标服务向所述第一服务发出的第二更新指令,接收所述第一服务基于所述第二更新指令向该目标服务发出的数据同步请求,基于该请求及该目标服务的配置版本号更新所述第一服务的配置数据。
如果第一服务低于第一预设数量的目标服务的配置版本号时,第一预设数量可以是指两个以上,随机从第一预设数量的目标服务中选取一个目标服务,基于该目标服务的配置版本号更新第一服务的配置数据实现配置同步。
第二更新模块130,用于当判断所有目标服务的配置版本号与所述第一服务的配置版本号均相同,且任一目标服务的配置版本号的变更对象与所述第一服务的配置版本号的变更对象不同时,基于各目标服务作为变更对象的次数执行投票操作,将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据。
在本实施例中,当出现配置数据冲突时(例如,不同服务同时提交配置数据)导致各服务配置数据的配置版本号的变更对象不同,由于此时已经更新了一部分服务,因此可以让局域网中所有服务反馈自己的配置数据版本进行投票,最终得票数多服务的配置数据版本作为最终版本。
具体地,当局域网的目标服务的配置版本号与第一服务的配置版本号均相同时,且存在任一目标服务的配置版本号的变更对象与第一服务的配置版本号的变更对象不相同时,该目标服务可以发出投票请求,根据各个目标服务作为配置版本号的变更对象的次数进行投票,将得票数最高的目标服务的配置数据作为第一目标配置数据,根据第一目标配置数据更新局域网中各目标服务。当某个目标服务发出投票请求时,局域网中所有目标服务广播自己的服务名称、配置数据版本号、配置版本号的变更对象,哈希值等信息,申请投票的服务接收各服务广播的数据版本,并根据服务名称、配置版本号、配置版本号的变更对象、哈希值进行统计,统计出自己作为其它目标服务配置版本号的变更对象的数据的票数,若申请投票的服务的得票数超过记录总配置版本号的变更对象数量的一半,则该服务会认为投票胜利。
在一个实施例中,所述将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据包括:
从得票数最高的目标服务的服务列表随机选取第二预设数量的目标服务,将所述第一目标配置数据分别发送至所述第二预设数量的目标服务,从所述第二预设数量的目标服务的服务列表中随机选取第三预设数量的目标服务,依次递归更新,直至所述网络中各服务的配置版本号相同。
获得投票胜利的服务,会从自己服务列表中随机选取几个服务,将自己的配置数据发送给其它服务,接收到更新配置的服务,则从自己服务列表中随机选取几个服务同步配置,依次递归,所有服务的配置数据会最终一致。
在一个实施例中,所述配置数据同步更新装置还包括第三更新模块,第三更新模块用于当第一服务处于运行状态时,将所述第一服务的数据包广播至该第一服务所属网络的目标服务,当存在任一目标服务的配置版本号与所述第一服务的配置版本号不同时,基于各目标服务作为配置版本号的变更对象的次数进行投票,将得票数最高的目标服务的配置数据作为第二目标配置数据,基于所述第二目标配置数据更新各目标服务的配置数据。
当第一服务处于运行状态需要同步配置数据时,将第一服务的数据包广播至该第一服务所属网络的目标服务,当存在任一目标服务的配置版本号与所述第一服务的配置版本号不同时,基于各目标服务作为配置版本号的变更对象的次数进行投票,将得票数最高的目标服务的配置数据作为第二目标配置数据,基于第二目标配置数据更新各目标服务的配置数据,其中,投票及配置过程与上述的投票及配置过程大致相同,在此不在赘述。
此外,本发明还提供一种配置数据同步更新方法。参照图3所示,为本发明配置数据同步更新方法的实施例的方法流程示意图。电子设备1的处理器12执行存储器11中存储的配置数据同步更新程序10时实现配置数据同步更新方法的如下步骤:
步骤S10:当第一服务启动时,将所述第一服务的数据包广播至第一服务所属网络的多个目标服务,所述数据包包括所述第一服务的配置版本号及配置版本号的变更对象。
在本实施例中,以某商城应用系统为例对本实施例进行说明,但本方案的应用场景并不仅限于商城系统。商城系统有多个服务组成,例如,订单服务、客服服务、运营服务、商品评论服务等,第一服务可以是任意一个服务,目标服务可以是指第一服务所属局域网中除第一服务之外的其它服务,当某商城应用系统的任意一个服务启动时,将第一服务的数据包广播至该第一服务所属网络的目标服务,通知当前所有网络下其他服务,当期实例已启动,例如,可以使用UDP将第一服务的数据包广播至第一服务所属局域网的各个服务,第一服务的数据包信息包括服务的名称、IP,最新配置版本号以及配置版本号的变更对象。需要说明的是,本申请所述的配置版本号的变更对象是指上一次更新或同步某服务的服务名称,例如,在商城应用系统中,若订单服务的最新配置数据被运营服务更新了,则运营服务作为订单服务的配置版本号的变更对象。
在一个实施例中,所述方法还包括:
分别判断各所述目标服务中是否存在所述第一服务的数据包信息,根据判断结果分别将所述第一服务的数据包信息添加至各所述目标服务对应的服务列表中。
判断各目标服务中是否存在第一服务的数据包信息,根据判断结果将第一服务的数据包信息添加至目标服务对应的服务列表中,其中,服务列表的数据结构为双层字典,第一层字典为服务名称(及服务名称),第二层字段中存储服务的IP。具体地,判断各目标服务中是否存在第一服务的数据包信息可以通过目标服务的本地缓存判断,每个目标服务都有本地缓存,本地缓存为双层缓存,第一层为服务(服务)名称,第二层为服务实例地址。通常一个服务会存在多个实例,如下表:
进一步地,当判断任一目标服务中不存在所述第一服务的数据包信息时,将所述第一服务的名称注册到该目标服务的服务列表中。
若判断任一目标服务中已存在第一服务的数据包信息,则在该目标服务的服务列表的第二层字典下新增第一服务的IP地址。
服务列表用于存储当前局域网中服务、IP信息等,如果局域网中某个目标服务的服务列表不存在第一服务的数据包信息,则需要将第一服务的名称注册到该目标服务的服务列表中,若局域网中某个目标服务已经存在第一服务的数据包信息,则需要在该目标服务的服务列表的第二层字典下新增第一服务的IP地址。
步骤S20:从每个目标服务的数据报文中获取该目标服务的配置版本号及配置版本号的变更对象,将所有目标服务的配置版本号和第一服务的配置版本号进行对比,当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据。
在本实施例中,可以从目标服务的数据报文中获取到配置版本号和配置版本号的变更对象,目标服务的数据报文为json格式,按括号解析该报文数据可以获取目标服务的配置版本号和配置版本号的变更对象,将目标服务的配置版本号和第一服务的配置版本号进行对比,当目标服务的配置版本号与第一服务的配置版本号不同时,根据对比结果更新局域网中目标服务或者第一服务的配置数据。
需要说明的是,本申请所述的配置版本号的变更对象是指上一次更新或同步某服务的服务名称,例如,在商城应用系统中,若订单服务的最新的配置数据被运营服务更新了,则运营服务为订单服务的配置版本号的变更对象。
在一个实施例中,所述当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据包括:
当所述第一服务的配置版本号高于一个目标服务的配置版本号时,接收该目标服务向所述第一服务发送的数据同步请求,基于该请求及所述第一服务的配置版本号更新该目标服务的配置数据;
当所述第一服务的配置版本号低于一个目标服务的配置版本号时,获取该目标服务向所述第一服务发出的第一更新指令,接收所述第一服务基于所述第一更新指令向该目标服务发出的数据同步请求,基于该请求及该目标服务的配置版本号更新所述第一服务的配置数据。
第一服务的配置版本号高于某个目标服务的配置版本号时,根据第一服务的配置版本号更新该目标服务的配置数据,第一服务的配置版本号低于一个目标服务的配置版本号时,根据目标服务的配置版本号更新第一服务的配置数据实现配置同步。
进一步地,当所述第一服务的配置版本号低于第一预设数量的目标服务的配置版本号时,随机从所述第一预设数量的目标服务中选取一个目标服务,获取该目标服务向所述第一服务发出的第二更新指令,接收所述第一服务基于所述第二更新指令向该目标服务发出的数据同步请求,基于该请求及该目标服务的配置版本号更新所述第一服务的配置数据。
如果第一服务低于第一预设数量的目标服务的配置版本号时,第一预设数量可以是指两个以上,随机从第一预设数量的目标服务中选取一个目标服务,基于该目标服务的配置版本号更新第一服务的配置数据实现配置同步。
步骤S30:当判断所有目标服务的配置版本号与所述第一服务的配置版本号均相同,且任一目标服务的配置版本号的变更对象与所述第一服务的配置版本号的变更对象不同时,基于各目标服务作为变更对象的次数执行投票操作,将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据。
在本实施例中,当出现配置数据冲突时(例如,不同服务同时提交配置数据)导致各服务配置数据的配置版本号的变更对象不同,由于此时已经更新了一部分服务,因此可以让局域网中所有服务反馈自己的配置数据版本进行投票,最终得票数多服务的配置数据版本作为最终版本。
具体地,当局域网的目标服务的配置版本号与第一服务的配置版本号均相同时,且存在任一目标服务的配置版本号的变更对象与第一服务的配置版本号的变更对象不相同时,该目标服务可以发出投票请求,根据各个目标服务作为配置版本号的变更对象的次数进行投票,将得票数最高的目标服务的配置数据作为第一目标配置数据,根据第一目标配置数据更新局域网中各目标服务。当某个目标服务发出投票请求时,局域网中所有目标服务广播自己的服务名称、配置数据版本号、配置版本号的变更对象,哈希值等信息,申请投票的服务接收各服务广播的数据版本,并根据服务名称、配置版本号、配置版本号的变更对象、哈希值进行统计,统计出自己作为其它目标服务配置版本号的变更对象的数据的票数,若申请投票的服务的得票数超过记录总配置版本号的变更对象数量的一半,则该服务会认为投票胜利。
在一个实施例中,所述将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据包括:
从得票数最高的目标服务的服务列表随机选取第二预设数量的目标服务,将所述第一目标配置数据分别发送至所述第二预设数量的目标服务,从所述第二预设数量的目标服务的服务列表中随机选取第三预设数量的目标服务,依次递归更新,直至所述网络中各服务的配置版本号相同。
获得投票胜利的服务,会从自己服务列表中随机选取几个服务,将自己的配置数据发送给其它服务,接收到更新配置的服务,则从自己服务列表中随机选取几个服务同步配置,依次递归,所有服务的配置数据会最终一致。
在一个实施例中,所述方法还包括:当第一服务处于运行状态时,将所述第一服务的数据包广播至该第一服务所属网络的目标服务,当存在任一目标服务的配置版本号与所述第一服务的配置版本号不同时,基于各目标服务作为配置版本号的变更对象的次数进行投票,将得票数最高的目标服务的配置数据作为第二目标配置数据,基于所述第二目标配置数据更新各目标服务的配置数据。
当第一服务处于运行状态需要同步配置数据时,将第一服务的数据包广播至该第一服务所属网络的目标服务,当存在任一目标服务的配置版本号与所述第一服务的配置版本号不同时,基于各目标服务作为配置版本号的变更对象的次数进行投票,将得票数最高的目标服务的配置数据作为第二目标配置数据,基于第二目标配置数据更新各目标服务的配置数据,其中,投票及配置过程与上述的投票及配置过程大致相同,在此不在赘述。
此外,本发明实施例还提出一种计算机可读存储介质,该计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等等中的任意一种或者几种的任意组合。所述计算机可读存储介质中包括存储数据区和存储程序区,存储数据区存储根据区块链节点的使用所创建的数据,存储程序区存储有配置数据同步更新程序10,所述配置数据同步更新程序10被处理器执行时实现如下操作:
当第一服务启动时,将所述第一服务的数据包广播至第一服务所属网络的多个目标服务,所述数据包包括所述第一服务的配置版本号及配置版本号的变更对象;
从每个目标服务的数据报文中获取该目标服务的配置版本号及配置版本号的变更对象,将所有目标服务的配置版本号和第一服务的配置版本号进行对比,当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据;
当判断所有目标服务的配置版本号与所述第一服务的配置版本号均相同,且任一目标服务的配置版本号的变更对象与所述第一服务的配置版本号的变更对象不同时,基于各目标服务作为变更对象的次数执行投票操作,将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据。
在另一个实施例中,本发明所提供的配置数据同步更新方法,为进一步保证上述所有出现的数据的私密和安全性,上述所有数据还可以存储于一区块链的节点中,例如第一服务的配置数据、各个服务的配置数据等,这些数据均可存储在区块链节点中。
需要说明的是,本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本发明之计算机可读存储介质的具体实施方式与上述配置数据同步更新方法的具体实施方式大致相同,在此不再赘述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,电子装置,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种配置数据同步更新方法,应用于电子设备,其特征在于,所述方法包括:
当第一服务启动时,将所述第一服务的数据包广播至第一服务所属网络的多个目标服务,所述数据包包括所述第一服务的配置版本号及配置版本号的变更对象;
从每个目标服务的数据报文中获取该目标服务的配置版本号及配置版本号的变更对象,将所有目标服务的配置版本号和第一服务的配置版本号进行对比,当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据;
当判断所有目标服务的配置版本号与所述第一服务的配置版本号均相同,且任一目标服务的配置版本号的变更对象与所述第一服务的配置版本号的变更对象不同时,基于各目标服务作为变更对象的次数执行投票操作,将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据。
2.如权利要求1所述的配置数据同步更新方法,其特征在于,所述方法还包括:
分别判断各所述目标服务中是否存在所述第一服务的数据包信息,根据判断结果分别将所述第一服务的数据包信息添加至各所述目标服务对应的服务列表中。
3.如权利要求2所述的配置数据同步更新方法,其特征在于,所述方法还包括:
当判断任一目标服务中不存在所述第一服务的数据包信息时,将所述第一服务的名称注册到该目标服务的服务列表中。
4.如权利要求1所述的配置数据同步更新方法,其特征在于,所述当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据包括:
当所述第一服务的配置版本号高于一个目标服务的配置版本号时,接收该目标服务向所述第一服务发送的数据同步请求,基于该请求及所述第一服务的配置版本号更新该目标服务的配置数据;
当所述第一服务的配置版本号低于一个目标服务的配置版本号时,获取该目标服务向所述第一服务发出的第一更新指令,接收所述第一服务基于所述第一更新指令向该目标服务发出的数据同步请求,基于该请求及该目标服务的配置版本号更新所述第一服务的配置数据。
5.如权利要求4所述的配置数据同步更新方法,其特征在于,所述方法还包括:
当所述第一服务的配置版本号低于第一预设数量的目标服务的配置版本号时,随机从所述第一预设数量的目标服务中选取一个目标服务,获取该目标服务向所述第一服务发出的第二更新指令,接收所述第一服务基于所述第二更新指令向该目标服务发出的数据同步请求,基于该请求及该目标服务的配置版本号更新所述第一服务的配置数据。
6.如权利要求1所述的配置数据同步更新方法,其特征在于,所述将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据包括:
从得票数最高的目标服务的服务列表随机选取第二预设数量的目标服务,将所述第一目标配置数据分别发送至所述第二预设数量的目标服务,从所述第二预设数量的目标服务的服务列表中随机选取第三预设数量的目标服务,依次递归更新,直至所述网络中各服务的配置版本号相同。
7.如权利要求1所述的配置数据同步更新方法,其特征在于,所述方法还包括:
当第一服务处于运行状态时,将所述第一服务的数据包广播至该第一服务所属网络的目标服务,当存在任一目标服务的配置版本号与所述第一服务的配置版本号不同时,基于各目标服务作为配置版本号的变更对象的次数进行投票,将得票数最高的目标服务的配置数据作为第二目标配置数据,基于所述第二目标配置数据更新各目标服务的配置数据。
8.一种配置数据同步更新装置,其特征在于,所述装置包括:
广播模块:用于当第一服务启动时,将所述第一服务的数据包广播至第一服务所属网络的多个目标服务,所述数据包包括所述第一服务的配置版本号及配置版本号的变更对象;
第一更新模块:用于从每个目标服务的数据报文中获取该目标服务的配置版本号及配置版本号的变更对象,将所有目标服务的配置版本号和第一服务的配置版本号进行对比,当判断任一目标服务的配置版本号与所述第一服务的配置版本号不同时,更新该目标服务或所述第一服务的配置数据;
第二更新模块:用于当判断所有目标服务的配置版本号与所述第一服务的配置版本号均相同,且任一目标服务的配置版本号的变更对象与所述第一服务的配置版本号的变更对象不同时,基于各目标服务作为变更对象的次数执行投票操作,将得票数最高的目标服务的配置数据作为第一目标配置数据,基于所述第一目标配置数据更新各目标服务的配置数据。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的程序,所述程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的配置数据同步更新方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括存储数据区和存储程序区,存储程序区存储有配置数据同步更新程序,所述配置数据同步更新程序被处理器执行时,实现如权利要求1至7中任一项所述配置数据同步更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011073530.0A CN112187548A (zh) | 2020-10-09 | 2020-10-09 | 配置数据同步更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011073530.0A CN112187548A (zh) | 2020-10-09 | 2020-10-09 | 配置数据同步更新方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112187548A true CN112187548A (zh) | 2021-01-05 |
Family
ID=73948588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011073530.0A Pending CN112187548A (zh) | 2020-10-09 | 2020-10-09 | 配置数据同步更新方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187548A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094441A (zh) * | 2021-04-29 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 数据同步方法以及装置 |
CN114268533A (zh) * | 2021-12-27 | 2022-04-01 | 山石网科通信技术股份有限公司 | 网络设备的配置同步方法及装置、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7237239B1 (en) * | 2002-08-26 | 2007-06-26 | Network Appliance, Inc. | Availability and consistent service semantics in a load balanced collection of services running different instances of an application |
CN108390914A (zh) * | 2018-01-23 | 2018-08-10 | 阿里巴巴集团控股有限公司 | 一种服务更新方法及装置、系统 |
CN110825772A (zh) * | 2019-10-28 | 2020-02-21 | 爱钱进(北京)信息科技有限公司 | 多个服务实例的内存数据的同步方法、装置及存储介质 |
CN111045700A (zh) * | 2018-10-15 | 2020-04-21 | 阿里巴巴集团控股有限公司 | 数据更新方法、装置、系统、存储介质及电子设备 |
CN111400334A (zh) * | 2020-06-04 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及电子装置 |
CN111475225A (zh) * | 2020-03-31 | 2020-07-31 | 招商局金融科技有限公司 | 微服务配置方法、系统、装置和计算机可读存储介质 |
-
2020
- 2020-10-09 CN CN202011073530.0A patent/CN112187548A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7237239B1 (en) * | 2002-08-26 | 2007-06-26 | Network Appliance, Inc. | Availability and consistent service semantics in a load balanced collection of services running different instances of an application |
CN108390914A (zh) * | 2018-01-23 | 2018-08-10 | 阿里巴巴集团控股有限公司 | 一种服务更新方法及装置、系统 |
CN111045700A (zh) * | 2018-10-15 | 2020-04-21 | 阿里巴巴集团控股有限公司 | 数据更新方法、装置、系统、存储介质及电子设备 |
CN110825772A (zh) * | 2019-10-28 | 2020-02-21 | 爱钱进(北京)信息科技有限公司 | 多个服务实例的内存数据的同步方法、装置及存储介质 |
CN111475225A (zh) * | 2020-03-31 | 2020-07-31 | 招商局金融科技有限公司 | 微服务配置方法、系统、装置和计算机可读存储介质 |
CN111400334A (zh) * | 2020-06-04 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及电子装置 |
Non-Patent Citations (1)
Title |
---|
杨迪;: "基于容器云的微服务系统", 电信科学, no. 09 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094441A (zh) * | 2021-04-29 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 数据同步方法以及装置 |
CN114268533A (zh) * | 2021-12-27 | 2022-04-01 | 山石网科通信技术股份有限公司 | 网络设备的配置同步方法及装置、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108259643B (zh) | 智能设备与用户操作终端的绑定方法及装置、电子设备 | |
US10181024B2 (en) | Method, device, and system for updating authentication information | |
CN103607427A (zh) | 信息展示方法和装置 | |
CN112187548A (zh) | 配置数据同步更新方法、装置、设备及存储介质 | |
CN107679718A (zh) | 名单分配方法、设备以及计算机可读存储介质 | |
CN111176963A (zh) | 一种服务评价信息的处理方法及装置 | |
CN111787171A (zh) | 自动外呼方法、装置、电子设备及计算机可读存储介质 | |
CN112632071A (zh) | 数据库主键id生成方法、装置、设备及存储介质 | |
CN111338608A (zh) | 分布式应用开发方法、装置、节点设备及可读存储介质 | |
CN111400310B (zh) | 基于审批链配置的数据监控方法、服务器及存储介质 | |
CN112887451B (zh) | 域名解析方法、装置及计算机设备 | |
CN108768727B (zh) | 访问第三方服务的方法、电子装置及可读存储介质 | |
CN109213782A (zh) | 搜索界面的配置、显示方法、装置及通信设备 | |
US20150269249A1 (en) | Computer-implemented method of arranging text items in a predefined order | |
CN112083925A (zh) | 基于h5页面开发的数据获取方法、装置、设备及存储介质 | |
CN111538672A (zh) | 测试案例分层测试方法、计算机设备及计算机可读存储介质 | |
CN108052521B (zh) | 协调数据显示方法、应用服务器及存储介质 | |
CN104735079A (zh) | 基于域名系统dns的支付验证方法及设备 | |
CN114090682A (zh) | 一种多通道联盟链上链方法、装置、设备及存储介质 | |
CN110955478B (zh) | 数据的分区动态显示方法、装置、设备及可读存储介质 | |
CN112052267B (zh) | 一种数据查询方法、设备、服务器及存储介质 | |
CN114374737A (zh) | 消息推送方法、装置、计算机设备及存储介质 | |
CN110493735B (zh) | 一种短信处理方法及装置 | |
US20170171320A1 (en) | Method, terminal and domain name server for connecting terminal to server | |
CN110286907B (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 |