CN112235378B - 数据更新方法、装置、存储介质及电子设备 - Google Patents
数据更新方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112235378B CN112235378B CN202011057327.4A CN202011057327A CN112235378B CN 112235378 B CN112235378 B CN 112235378B CN 202011057327 A CN202011057327 A CN 202011057327A CN 112235378 B CN112235378 B CN 112235378B
- Authority
- CN
- China
- Prior art keywords
- data
- volatile
- target
- service
- instance
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000008859 change Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 abstract description 31
- 230000002159 abnormal effect Effects 0.000 abstract description 12
- 230000008447 perception Effects 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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/50—Network services
- H04L67/55—Push-based network services
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据更新方法、装置、存储介质及电子设备。该方法通过从微服务提供端发送的目标服务实例的实例数据中确定易变数据和非易变数据;根据历史实例数据确定易变数据和/或非易变数据是否存在更新数据,在确定易变数据存在更新数据的情况下,响应于接收微服务消费端根据数据更新通知消息发送的数据请求消息,向微服务消费端发送易变数据;在确定非易变数据存在更新数据的情况下,响应于接收微服务消费端根据数据更新通知消息发送的数据请求消息,向微服务消费端发送非易变数据。能够有效减少数据传输量,避免数据传输占用太多的网络资源,从而能够有效提升微服务发现效率,避免因服务发现感知延迟造成的服务调用异常的现象。
Description
技术领域
本公开涉及微服务架构领域,具体地,涉及一种数据更新方法、装置、存储介质及电子设备。
背景技术
随着云计算技术的进步和服务的增长,微服务架构逐渐受到了人们的关注。微服务架构是通过一套小服务的方式来构建一个应用,每个服务独立运行在自己的进程中,服务之间通过轻量的通讯机制进行通讯,这些服务基于业务需求构建,可以通过自动化部署机制来独立部署,可以使用不同的编程语言实现,为应用和服务的实现带来了更强的灵活性。一般微服务架构中包括微服务提供端,微服务注册服务器,以及微服务消费端,通常微服务提供端在启动时将服务实例信息注册到微服务注册服务器,退出时从微服务注册服务器中删除,微服务消费端从微服务注册服务器上获取最新的服务提供端对应的服务实例信息,从而维护与服务提供端之间的通信,为目标服务的调用提供数据支持。
然而,当前的微服务架构中,在微服务提供端对应的服务实例信息发生变更的情况下,微服务消费端从微服务注册服务器上获取最新的服务实例信息时,通常需要获取完整的服务实例信息,这样非常不利于减少数据传输量,并且在微服务架构中存在上万个服务实例信息发生变更的情况下,每个服务实例信息都需要整块推送,上万个服务实例信息的更新,无疑会占用大量的网络带宽,也会带来额外的内存开销,从而容易造成因为服务消费端无法及时感知服务提供端实例变更而导致流量调用异常的现象。
发明内容
本公开的目的是提供一种数据更新方法、装置、存储介质及电子设备。
为了实现上述目的,本公开第一方面提供一种数据更新方法,应用于微服务注册服务器,所述方法包括:
接收微服务提供端发送的服务注册请求消息,所述服务注册请求消息用于请求注册目标服务实例,所述服务注册请求消息包括所述目标服务实例的实例数据;
从所述实例数据中确定易变数据和非易变数据;
在存储有所述目标服务实例的历史实例数据的情况下,根据所述历史实例数据确定目标数据是否存在更新数据,所述目标数据包括所述易变数据和/或所述非易变数据;
在确定所述目标数据存在更新数据的情况下,根据所述目标数据向微服务消费端发送数据更新通知消息;
响应于接收所述微服务消费端根据所述数据更新通知消息发送的数据请求消息,向所述微服务消费端发送所述目标数据,以便所述微服务消费端根据所述目标数据更新存储的所述目标服务实例的实例数据。
可选地,所述从所述实例数据中确定易变数据和非易变数据包括:
获取所述实例数据的数据结构元素;
通过预设类型对应关系确定所述数据结构元素对应的数据类型,所述数据类型包括易变类型或者非易变类型;
在所述数据类型为易变类型的情况下,确定所述实例数据为易变数据;和/或,在所述数据类型为非易变类型的情况下,确定所述实例数据为非易变数据。
可选地,所述预设类型对应关系通过以下方式预先确定:
获取历史时间段内至少一个服务实例对应的多个所述数据结构元素中数据的变动频率;
根据每个所述数据结构元素中数据的所述变动频率生成该数据结构元素对应所述数据类型,从而得到每个所述据结构元素与所述数据类型的对应关系。
可选地,所述历史实例数据包括历史易变数据和历史非易变数据,所述根据所述历史实例数据确定目标数据是否存在更新数据包括:
确定所述易变数据与所述历史易变数据是否相同,以及所述非易变数据与所述历史非易变数据是否相同;
在确定所述易变数据与所述历史易变数据不同的情况下,确定所述易变数据存在所述更新数据;和/或,在确定所述非易变数据与所述历史非易变数据不同的情况下,确定所述非易变数据存在所述更新数据。
可选地,在确定所述目标数据存在更新数据的情况下,所述方法还包括:
在所述目标数据包括所述易变数据的情况下,将所述易变数据存储至第一缓存;
在所述目标数据包括所述非易变数据的情况下,将所述非易变数据存储至第二缓存;
相应地,所述向所述微服务消费端发送所述目标数据包括:
在所述目标数据包括所述易变数据的情况下,将所述第一缓存中缓存的所述目标服务实例对应的易变数据发送至所述微服务消费端;
在所述目标数据包括所述非易变数据的情况下,将所述第二缓存中缓存的所述目标服务实例对应的所述非易变数据发送至所述微服务消费端。
在本公开的第二方面提供一种数据更新方法,应用于微服务消费端,所述方法包括:
在微服务注册服务器确定目标服务实例的目标数据中存在更新数据的情况下,接收所述微服务注册服务器发送的数据变更通知消息;所述目标数据包括易变数据和/或非易变数据;
根据所述数据变更通知消息向所述微服务注册服务器发送数据请求消息,所述数据请求消息用于请求所述目标数据;
接收所述微服务注册服务器根据所述数据请求消息发送的所述目标数据;
根据所述目标数据更新存储的所述目标服务实例的实例数据。
可选地,所述根据所述目标数据更新存储的所述目标服务实例的实例数据包括:
在所述目标数据包括所述易变数据的情况下,将所述微服务消费端中的历史易变数据更新为所述易变数据;
在所述目标数据包括所述非易变数据的情况下,将所述微服务消费端中的历史非易变数据更新为所述非易变数据。
可选地,所述方法还包括:
确定待调用的目标服务;
获取本地存储的所述目标服务对应的易变数据和非易变数据,以得到所述目标服务的实例数据;
获取所述目标服务对应的服务实例的节点路由负载信息;
根据所述实例数据和所述节点路由负载信息确定待访问服务实例;
通过所述待访问服务实例调用所述目标服务。
可选地,所述方法还包括:
在确定所述目标数据包括所述非易变数据的情况下,根据所述非易变数据更新所述目标服务实例对应的节点路由负载信息。
在本公开的第三方面提供一种数据更新装置,应用于微服务注册服务器,所述装置包括:
第一接收模块,用于接收微服务提供端发送的服务注册请求消息,所述服务注册请求消息用于请求注册目标服务实例,所述服务注册请求消息包括所述目标服务实例的实例数据;
第一确定模块,用于从所述实例数据中确定易变数据和非易变数据;
第二确定模块,用于在存储有所述目标服务实例的历史实例数据的情况下,根据所述历史实例数据确定目标数据是否存在更新数据,所述目标数据包括所述易变数据和/或所述非易变数据;
第一发送模块,用于在确定所述目标数据存在更新数据的情况下,根据所述目标数据向微服务消费端发送数据更新通知消息;
第二发送模块,用于响应于接收所述微服务消费端根据所述数据更新通知消息发送的数据请求消息,向所述微服务消费端发送所述目标数据,以便所述微服务消费端根据所述目标数据更新存储的所述目标服务实例的实例数据。
可选地,所述第一确定模块包括:
获取子模块,用于获取所述实例数据的数据结构元素;
第一确定子模块,用于通过预设类型对应关系确定所述数据结构元素对应的数据类型,所述数据类型包括易变类型或者非易变类型;
第二确定子模块,用于在所述数据类型为易变类型的情况下,确定所述实例数据为易变数据;和/或,在所述数据类型为非易变类型的情况下,确定所述实例数据为非易变数据。
可选地,所述预设类型对应关系通过以下方式预先确定:
获取历史时间段内至少一个服务实例对应的多个所述数据结构元素中数据的变动频率;
根据每个所述数据结构元素中数据的所述变动频率生成该数据结构元素对应所述数据类型,从而得到每个所述据结构元素与所述数据类型的对应关系。
可选地,所述历史实例数据包括历史易变数据和历史非易变数据,所述第二确定模块用于:
确定所述易变数据与所述历史易变数据是否相同,以及所述非易变数据与所述历史非易变数据是否相同;
在确定所述易变数据与所述历史易变数据不同的情况下,确定所述易变数据存在所述更新数据;和/或,在确定所述非易变数据与所述历史非易变数据不同的情况下,确定所述非易变数据存在所述更新数据。
可选地,在确定所述目标数据存在更新数据的情况下,所述装置还包括:
第一存储模块,用于在所述目标数据包括所述易变数据的情况下,将所述易变数据存储至第一缓存;
第二存储模块,用于在所述目标数据包括所述非易变数据的情况下,将所述非易变数据存储至第二缓存;
相应地,所述第二发送模块包括:
第一发送子模块,用于在所述目标数据包括所述易变数据的情况下,将所述第一缓存中缓存的所述目标服务实例对应的易变数据发送至所述微服务消费端;
第二发送子模块,用于在所述目标数据包括所述非易变数据的情况下,将所述第二缓存中缓存的所述目标服务实例对应的所述非易变数据发送至所述微服务消费端。
在本公开的第四方面提供一种数据更新装置,应用于微服务消费端,所述装置包括:
第二接收模块,用于在微服务注册服务器确定目标服务实例的目标数据中存在更新数据的情况下,接收所述微服务注册服务器发送的数据变更通知消息;所述目标数据包括易变数据和/或非易变数据;
第三发送模块,用于根据所述数据变更通知消息向所述微服务注册服务器发送数据请求消息,所述数据请求消息用于请求所述目标数据;
第三接收模块,用于接收所述微服务注册服务器根据所述数据请求消息发送的所述目标数据;
更新模块,用于根据所述目标数据更新存储的所述目标服务实例的实例数据。
可选地,所述更新模块包括:
第一更新子模块,用于在所述目标数据包括所述易变数据的情况下,将所述微服务消费端中的历史易变数据更新为所述易变数据;
第二更新子模块,用于在所述目标数据包括所述非易变数据的情况下,将所述微服务消费端中的历史非易变数据更新为所述非易变数据。
可选地,所述装置还包括:
第三确定模块,用于确定待调用的目标服务;
获取模块,用于获取本地存储的所述目标服务对应的易变数据和非易变数据,以得到所述目标服务的实例数据;
所述获取模块,还用于获取所述目标服务对应的服务实例的节点路由负载信息;
调用模块,用于根据所述实例数据和所述节点路由负载信息确定待访问服务实例,并通过所述待访问服务实例调用所述目标服务。
在本公开的第五方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以上第一方面所述方法的步骤;
或者,
该程序被处理器执行时实现以上第二方面所述方法的步骤。
在本公开的第六方面提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现以上第一方面所述方法的步骤;
或者,
处理器,用于执行所述存储器中的所述计算机程序,以实现以上第二方面所述方法的步骤。
上述技术方案,通过将整块的实例数据拆分为易变数据和非易变数据,并在只有该易变数据存在变更时,只向微服务消费端发送该易变数据,在只有该非易变数据存在变更时,只向微服务消费端发送该非易变数据,能够有效减少数据传输量,避免数据传输占用太多的网络资源,能够有效提升微服务发现效率,能够避免因服务发现感知延迟造成的服务调用异常的现象,从而能够有效提升基于微服务架构的目标服务调用的可靠性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1本公开示例性示出的微服务系统的示意图;
图2是本公开一示例性实施例示出的一种数据更新方法的流程图;
图3是本公开一示例性示出的数据结构示意图;
图4是本公开另一示例性实施例示出的一种数据更新方法的流程图;
图5是根据本公开图4所示实施例示出的一种数据更新方法的流程图;
图6是本公开又一示例性实施例示出的一种数据更新方法的流程图;
图7是在本公开又一示例性实施例示出的一种数据更新装置的框图;
图8是在本公开又一示例性实施例示出的一种数据更新装置的框图;
图9是根据一示例性实施例示出的一种电子设备的框图;
图10是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在详细介绍本公开的具体实施方式之前,首先对本公开的应用场景进行简单说明,本公开可以应用于微服务发现场景,微服务发现是微服务治理的基石,现有技术中海量数据场景下微服务发现面临着传输数据量大,内存消耗过多,服务消费端无法及时感知服务提供端实例信息变动的问题,从而容易导致流量调用异常的现象。下面以图1为例进行说明,图1是本公开示例性示出的微服务系统的示意图;参见图1,该微服务系统中包括微服务提供端101,微服务注册服务器102以及微服务消费端103,该微服务提供端101可以包括至少一个目标服务,每个目标服务至少包括一个服务实例,在每个服务实例启动时,都会向该微服务注册服务器102(例如,运行有微服务注册程序的设备)发送注册请求,该注册请求可以是微服务提供端的服务实例第一次注册时发送的第一请求信息,也可以是微服务提供端的服务实例存在数据变更时发送的第二请求信息,该注册请求中包括该服务实例对应的服务实例信息,该微服务注册服务器102接收到该服务实例信息后向该微服务消费端103推送该服务实例信息,以使该微服务消费端能够在调用目标服务时根据该服务实例信息完成该目标服务对应的服务实例的访问。
相关技术中,该微服务注册服务器102接收到该服务实例信息后向该微服务消费端103推送该服务实例信息时,通常需要微服务注册服务器102向该微服务消费端103发送完整的服务实例信息,从而维护微服务消费端103与微服务提供端101之间的通信,为微服务消费端103调用目标服务提供数据支持。由于该微服务提供端101通常会包含多个目标服务,每个目标服务会对应有至少一个的服务实例,因此整个微服务系统中会包括多个服务实例,甚至可能会包括成千上万个服务实例,如果每个服务实例的更新都需要获取完整的服务实例信息,那么在同时进行上万个服务实例的服务实例信息更新进程的情况下,无疑会占用大量的网络带宽,也会带来额外的内存开销,并且由于整块数据传输时数据量较大,不免会产生数据传输延时,从而出现服务发现感知延迟,造成服务调用异常的问题。
为了解决上述技术问题,本公开提供了一种数据更新方法、装置、储介质及电子设备。该方法通过从微服务提供端发送的目标服务实例的实例数据中确定易变数据和非易变数据;根据历史实例数据确定该易变数据和/或该非易变数据是否存在更新数据,在确定该易变数据存在更新数据的情况下,响应于接收所述微服务消费端根据所述数据更新通知消息发送的数据请求消息,向所述微服务消费端发送该易变数据;在确定该非易变数据存在更新数据的情况下,响应于接收所述微服务消费端根据所述数据更新通知消息发送的数据请求消息,向所述微服务消费端发送该非易变数据。这样,通过将整块的实例数据拆分为易变数据和非易变数据,并在只有该易变数据存在变更时,只向微服务消费端发送该易变数据,在只有该非易变数据存在变更时,只向微服务消费端发送该非易变数据,能够有效减少数据传输量,避免数据传输占用太多的网络资源,也能够有效提升微服务发现效率,及时更新微服务提供端的节点数据,避免因服务发现感知延迟造成的服务调用异常的现象,从而能够有效提升基于微服务架构的目标服务调用的可靠性。
图2是本公开一示例性实施例示出的一种数据更新方法的流程图;参见图2,该数据更新方法,应用于微服务注册服务器,该方法包括以下步骤:
步骤201,接收微服务提供端发送的服务注册请求消息。
其中,该服务注册请求消息用于请求注册目标服务实例,该服务注册请求消息包括该目标服务实例的实例数据。
示例地,该注册请求信息可以是微服务提供端的服务实例第一次注册时发送的第一请求信息,也可以是微服务提供端的服务实例存在数据变更时发送的第二请求信息,该第一请求信息和该第二请求信息中均包括目标服务实例的实例数据。该实例数据可以包括状态数据和基础数据,例如,该状态数据可以是用于表征可用或者不可用的字符信息,该基础数据可以包括服务标识,网络IP地址,机房编号,路由权重,通讯协议,运行应用程序的版本号,端口数据,属于线上服务设备或者属于线下服务设备等信息。
步骤202,从该实例数据中确定易变数据和非易变数据。
本步骤中一种可能的实施方式为:获取该实例数据的数据结构元素;通过预设类型对应关系确定该数据结构元素对应的数据类型,该数据类型包括易变类型或者非易变类型;在该数据类型为易变类型的情况下,确定该实例数据为易变数据;和/或,在该数据类型为非易变类型的情况下,确定该实例数据为非易变数据。
其中,该预设类型对应关系可以通过以下方式预先确定:
获取历史时间段内至少一个服务实例对应的多个该数据结构元素中数据的变动频率;根据每个该数据结构元素中数据的该变动频率生成该数据结构元素对应该数据类型,从而得到每个该数据结构元素与该数据类型的对应关系。
需要说明的是,该实例数据可以是以预设的数据结构形式表达的服务实例信息,该数据结构元素为该实例数据对应的数据结构中包含的数据元素。以图3所示为例进行说明,图3是本公开一示例性示出的数据结构示意图,该实例数据是预先定义顺序为appkey(服务标识),ip(IP地址),port(端口),version(版本号),env(环境),weight(权重),protocol(协议),role(角色),heartbeat(心跳),cell(单元信息),swimlane(泳道),lastupdate time(最后更新时间),status(状态)的数据结构,则该数据实例对应的数据结构元素包括:appkey,ip,port,version,env,weight,protocol,role,heartbeat,cell,swimlane,last update time,status。该微服务注册服务器可以对该数据结构元素对应的数据设置埋点,以统计每个该数据结构元素对应的数据的变更频率,从而根据该变更频率确定该实例数据中哪些数据结构元素属于易变类型,哪些数据结构元素属于非易变类型。其中在根据该数据结构元素对应的数据的变更频率确定易变类型与非易变类型时,可以将变更频率大于或者等于预设频率阈值的数据结构元素确定为易变类型,将变更频率小于该预设频率阈值的数据结构元素确定为非易变类型。
步骤203,在存储有该目标服务实例的历史实例数据的情况下,根据该历史实例数据确定目标数据是否存在更新数据。
其中,该目标数据包括该易变数据和/或该非易变数据。
本步骤中一种可能的实施方式为:该历史实例数据可以包括历史易变数据和历史非易变数据,确定该易变数据与该历史易变数据是否相同,以及该非易变数据与该历史非易变数据是否相同;在确定该易变数据与该历史易变数据不同的情况下,确定该易变数据存在该更新数据;和/或,在确定该非易变数据与该历史非易变数据不同的情况下,确定该非易变数据存在该更新数据。
需要说明的是,当易变数据中包含多个数据结构元素时,在确定其中任一个数据结构元素对应的数据与该历史易变数据的相应数据不同的情况下,即可以确定该易变数据存在更新数据;当非易变数据中包含多个数据结构元素时,在确定其中任一个数据结构元素对应的数据与该历史非易变数据中的相应数据不同的情况下,即可以确定该非易变数据存在更新数据;这样,在该易变数据或该非易变数据包含多个数据结构元素时,只要确定出其中一个数据结构元素对应的数据发生变更即可确定该易变数据或者该非易变数据存在更新,无需将全部数据进行逐个比对,能够有效节省确定是否存在更新数据的用时,有利于快速更新微服务系统中微服务提供端的节点数据,提升服务发现效率。
步骤204,在确定该目标数据存在更新数据的情况下,根据该目标数据向微服务消费端发送数据更新通知消息。
其中,在确定该易变数据存在该更新数据时,可以向微服务消费端发送包括该易变类型标识的数据更新通知消息;在确定该非易变数据存在更新数据时,可以向微服务消费端发送包括该非易变类型标识的数据更新通知消息。例如,该易变类型标识可以是status字符,该非易变类型标识可以是info字符。
需要说明的是,在确定该目标数据存在更新数据的情况下,该方法还可以包括:在该目标数据包括该易变数据的情况下,将该易变数据存储至该微服务注册服务器上的第一缓存;在该目标数据包括该非易变数据的情况下,将该非易变数据存储至第二缓存,例如,该第一缓存可以是状态缓存,该第二缓存可以是基础缓存。这样,在该微服务消费端从该微服务注册服务器上获取该易变数据和/或该非易变数据时,可以直接从该第一缓存和/或第二缓存中获取,能够节约该微服务消费端从该微服务注册服务器上拉取该目标数据的用时,能够提升该微服务消费端中微服务提供端中目标服务实例的节点数据更新速度,从而能够避免因为节点数据更新不及时造成的服务调用异常的现象。
步骤205,响应于接收该微服务消费端根据该数据更新通知消息发送的数据请求消息,向该微服务消费端发送该目标数据,以便该微服务消费端根据该目标数据更新存储的该目标服务实例的实例数据。
本步骤中一种可能的实施方式中,在该目标数据包括该易变数据的情况下,将该第一缓存中缓存的该目标服务实例对应的易变数据发送至该微服务消费端;在该目标数据包括该非易变数据的情况下,将该第二缓存中缓存的该目标服务实例对应的该非易变数据发送至该微服务消费端。
需要说明的是,由于微服务注册服务器会同时接收成千上万的目标服务实例的服务注册请求,因此,该第一缓存中可能会存在多个目标服务实例对应的易变数据,该第二缓存中可能会存在多个目标服务实例对应的非易变数据,多个该易变数据可以以列表的形式存放在该第一缓存中,多个该非易变数据也可以以列表的形式存放在该第二缓存中。在向该微服务消费端发送该目标数据时,可以根据接收该微服务消费端发送的数据请求消息,该数据请求消息中可以包括该目标服务实例的标识信息,根据该目标服务实例的标识信息从该第一缓存和/或第二缓存中查找待发送的数据,并将查找到的数据发送至该微服务消费端。
示例地,若微服务注册服务器同时接收到目标服务实例A,目标服务实例B,目标服务实例C,以及目标服务实例D的注册请求,假设该目标服务实例A和目标服务实例D对应的易变数据存在更新数据,该目标服务实例B对应的易变数据和非易变数据均存在更新数据,该目标服务实例C对应的非易变数据存在更新数据,则该微服务注册服务器生成的第一缓存中会包括目标服务实例A的易变数据Ya,该目标服务实例B对应的易变数据Yb,以及该目标服务实例D的易变数据Yd;该微服务注册服务器生成的第二缓存中会包括目标服务实例B的非易变数据Fb和目标服务实例C的非易变数据Fc。在接收到微服务消费端发送的易变数据请求消息(该易变请求消息包含易变数据Ya标识,易变数据Yb标识以及易变数据Yd标识的数据请求消息)时,将该易变数据请求消息对应的易变数据(从该第一缓存中查找的该易变数据Ya,该易变数据Yb以及该易变数据Yd)发送至该微服务消费端中;在接收到微服务消费端发送的非易变数据请求消息(该非易变数据请求消息包含非易变数据Fb标识,和非易变数据Fc标识的数据请求消息)时,将该非易变数据请求消息对应的非易变数据(从该第二缓存中查找的非易变数据Fb和该非易变数据Fc)发送至该微服务消费端。
这样,能够将整块的实例数据拆分为易变数据和非易变数据,并在只有该易变数据存在变更时,只向微服务消费端发送该易变数据,在只有该非易变数据存在变更时,只向微服务消费端发送该非易变数据,能够避免实例数据整块传输,避免数据传输占用太多的网络资源,也能够有效缩短数据传输延时,及时更新微服务提供端的节点数据,避免因为节点数据更新不及时造成的服务发现感知延迟的现象,从而能够提升微服务发现效率,提升基于微服务架构的目标服务调用的可靠性。
图4是本公开另一示例性实施例示出的一种数据更新方法的流程图;参见图4,该数据更新方法,应用于微服务消费端,该方法可以包括以下步骤:
步骤401,在微服务注册服务器确定目标服务实例的目标数据中存在更新数据的情况下,接收该微服务注册服务器发送的数据变更通知消息。
其中,该目标数据包括易变数据和/或非易变数据。
需要说明的是,在该易变数据存在数据更新的情况下,该数据变更通知消息包括该易变类型标识,在该非易变数据存在数据更新的情况下,该数据变更通知消息包括该非易变类型标识。例如,该易变类型标识可以是status字符,该非易变类型标识可以是info字符。
步骤402,根据该数据变更通知消息向该微服务注册服务器发送数据请求消息。
其中,该数据请求消息用于请求该目标数据。
示例地,在接收到包括该status字符标识的数据变更通知消息的情况下,向该微服务注册服务器发送用于请求该易变数据的数据请求消息;在接收到包括该info字符标识的数据变更通知消息的情况下,向该微服务注册服务器发送用于请求该非易变数据的数据请求消息。
步骤403,接收该微服务注册服务器根据该数据请求消息发送的该目标数据。
本步骤中,当该微服务注册服务器接收到该微服务消费端发送的用于请求该易变数据的数据请求消息时,向该微服务消费端发送该易变数据;当该微服务注册服务器接收到该微服务消费端发送的用于请求该非易变数据的数据请求消息时,向该微服务消费端发送该非易变数据。
步骤404,根据该目标数据更新存储的该目标服务实例的实例数据。
本步骤中一种可能的实施方式为:在该目标数据包括该易变数据的情况下,将该微服务消费端中的历史易变数据更新为该易变数据;在该目标数据包括该非易变数据的情况下,将该微服务消费端中的历史非易变数据更新为该非易变数据。
示例地,在该微服务消费端本地设有status缓存和info缓存,该status缓存用于存储具有调用权限的多个目标服务对应的目标服务实例A,目标服务实例B,目标服务实例C,以及目标服务实例D等目标服务实例对应的易变数据Y1,易变数据Y2,易变数据Y3,易变数据Y4,该info缓存用于存储目标服务实例A,目标服务实例B,目标服务实例C,以及目标服务实例D等目标服务实例对应的非易变数据F1,非易变数据F2,非易变数据F3,非易变数据F4,在目标服务C的易变数据Y3存在更新数据时,用当前接收到微服务注册服务器发送的易变数据DY3替换上一次存储的易变数据Y3,在目标服务B的非易变数据F2存在更新数据时,用当前接收到微服务注册服务器发送的非易变数据DF2替换上一次存储的非易变数据F2。
这样,能够在只有该易变数据存在更新数据时,只从微服务注册服务器上获取该易变数据,在只有该非易变数据存在变更时,只从微服务注册服务器上获取该非易变数据,能够避免实例数据整块传输,避免数据传输占用太多的网络资源,也能够有效缩短数据传输延时,及时更新微服务提供端的节点数据,避免因为节点数据更新不及时造成的服务调用异常的现象,从而能够有效提升基于微服务架构的目标服务调用的可靠性。
由以上步骤401至步骤404能够实现在微服务提供端的目标服务实例的实例数据存在变更时,根据微服务注册服务器中最新的目标服务实例的实例数据更新微服务消费端中的目标服务实例的实例数据,从而为微服务消费端提供该目标服务实例,为调用该目标服务提供数据依据。该目标服务的调用过程可以参见图5所示步骤,图5是根据本公开图4所示实施例示出的一种数据更新方法的流程图,参见图5,该方法还可以包括以下步骤:
步骤405,确定待调用的目标服务。
本步骤中,可以由用户在该微服务消费端具有调用权限的多个目标服务中指定待调用的目标服务。
步骤406,获取本地存储的该目标服务对应的易变数据和非易变数据,以得到该目标服务的实例数据。
仍以上述步骤404中所示的示例为例进行说明,在用户选择调用该目标服务M时,可以先从该微服务消费端本地的info缓存中获取该目标服务M对应的目标服务实例A的非易变数据F1,并从该微服务消费端本地的status缓存中获取该目标服务M对应的目标服务实例A的易变数据Y1,从而得到包括该非易变数据F1和该易变数据Y1的实例数据。
步骤407,获取该目标服务对应的服务实例的节点路由负载信息。
其中,可以根据该目标服务对应的每个服务实例的实例数据中的IP地址和路由负载权重weight计算该目标服务对应的每个服务实例的节点路由负载信息。例如,可以通过以下方式计算该目标服务实例对应的节点路由负载信息:根据每个服务实例的IP地址确定该服务实例的归属地,获取目标归属地中该目标服务对应的服务实例,根据该目标归属地中该服务实例对应的路由负载权重weight确定每个服务实例对应的节点路由负载信息。
需要说明的是,在对目标服务对应的服务实例的节点路由负载信息完成计算后,可以存储计算得到的节点路由负载信息,在之后的服务发现过程中,若该服务实例对应的实例数据中不存在非易变数据更新,则无需重新计算该节点路由负载信息,在目标服务调用过程中直接读取存储的该节点路由信息即可,只有在确定所述目标数据包括所述非易变数据的情况下,即该服务实例对应的实例数据中存在非易变数据更新的情况下,才根据所述非易变数据重新计算该节点路由负载信息,并用重新计算的结果覆盖当前存储的节点路由负载信息,以完成对所述节点路由负载信息的更新,并在目标服务调用过程中直接读取更新后的该节点路由信息即可。由于相关技术中,通常是在该目标服务实例对应的实例数据存在任何变更的情况下,都会重新计算所述目标服务实例对应的节点路由负载信息,而本步骤中是只有在非易变数据存在更新的情况下,才会重新计算该目标服务实例对应的节点路由负载信息,在只有易变数据存在更新的情况下,并不需要重新进行节点路由负载信息的计算,这样,能够有效避免重复的节点路由负载信息计算,从而能够有效降低CPU消耗,减少内存开销。
步骤408,根据该实例数据和该节点路由负载信息确定待访问服务实例。
本步骤中,可以根据该实例数据中的IP地址和该目标服务对应的多个服务实例的节点路由负载信息,从多个服务实例的节点路由负载信息中确定满足路由需求的服务实例,将满足路由需求的服务实例确定为该待访问服务实例。
步骤409,通过该待访问服务实例调用该目标服务。
其中,该待访问服务实例中运行有目标服务对应的应用程序,可以通过调用该待访问服务实例以完成对该目标服务的调用。
这样,在该服务实例对应的实例数据中不存在非易变数据更新的情况下,无需重新计算该节点路由负载信息,只有在确定所述目标数据包括所述非易变数据的情况下,才根据所述非易变数据重新计算所述目标服务实例对应的节点路由负载信息,能够有效避免重复的节点路由信息计算,从而能够有效降低CPU消耗,减少内存开销,也能够提高服务发现效率,避免服务发现延迟。
图6是本公开另一示例性实施例示出的一种数据更新方法的流程图,参见图6,该方法还可以包括以下步骤:
步骤601,接收微服务提供端发送的服务注册请求消息。
其中,该服务注册请求消息用于请求注册目标服务实例,该服务注册请求消息包括该目标服务实例的实例数据。
示例地,该实例数据可以包括状态数据和基础数据,例如,该状态数据可以是用于表征可用或者不可用的字符信息,该基础数据可以包括服务标识,网络IP地址,机房编号,路由权重,通讯协议,运行应用程序的版本号,端口数据,属于线上服务设备或者属于线下服务设备等信息。
步骤602,从该实例数据中确定易变数据和非易变数据。
本步骤中,可以获取该实例数据的数据结构元素;通过预设类型对应关系确定该数据结构元素对应的数据类型,该数据类型包括易变类型或者非易变类型;在该数据类型为易变类型的情况下,确定该实例数据为易变数据;和/或,在该数据类型为非易变类型的情况下,确定该实例数据为非易变数据。
需要说明的是,该预设类型对应关系可以通过以下方式预先确定:获取历史时间段内至少一个服务实例对应的多个该数据结构元素中数据的变动频率;根据每个该数据结构元素中数据的该变动频率生成该数据结构元素对应该数据类型,从而得到每个该据结构元素与该数据类型的对应关系。本步骤中的具体实施示例可以参见图2中步骤202所示的内容,本公开在此不再赘述。
步骤603,在存储有该目标服务实例的历史实例数据的情况下,确定该易变数据与该历史易变数据是否相同,以及该非易变数据与该历史非易变数据是否相同。
本步骤中,在确定该易变数据与该历史易变数据不同的情况下,执行步骤604至步骤608,在确定该非易变数据与该历史非易变数据不同的情况下,执行步骤609至613。
步骤604,在确定该易变数据与该历史易变数据不同的情况下,确定该易变数据存在该更新数据。
需要说明的是,当易变数据中包含多个数据结构元素时,在确定其中任一个数据结构元素对应的数据与该历史易变数据的相应数据不同的情况下,即可以确定该易变数据存在更新数据。
步骤605,向微服务消费端发送包含易变类型标识的数据更新通知消息。
示例地,该易变类型标识可以是预先设置的数据类型符号,例如可以是字符型数据类型符号status。
步骤606,该微服务消费端响应于接收到包含易变类型标识的数据变更通知消息,向该微服务注册服务器发送包含该易变类型标识的数据请求消息。
步骤607,该微服务注册服务器响应于接收到包含该易变类型标识的数据请求消息,向该微服务消费端发送该易变数据。
步骤608,该微服务消费端接收到该易变数据后,将该微服务消费端本地存储的历史易变数据更新为该易变数据。
需要说明的是,将该微服务消费端本地存储的历史易变数据更新为该易变数据的具体实施方式可以参见图4中步骤404所示的内容,本公开在此不再赘述。
这样,在该目标服务实例对应的实例数据中只有易变数据存在更新数据时,只将该易变数据传输给该微服务消费端,能够有效减少数据传输量,极大的降低网络带宽消耗,从而能够有效提升微服务消费端上该微服务提供端的节点数据更新效率,能够有效避免因为节点数据更新延迟而造成的目标服务调用异常的现象。
步骤609,在确定该非易变数据与该历史非易变数据不同的情况下,确定该非易变数据存在该更新数据。
需要说明的是,当非易变数据中包含多个数据结构元素时,在确定其中任一个数据结构元素对应的数据与该历史非易变数据中的相应数据不同的情况下,即可以确定该非易变数据存在更新数据。
步骤610,向微服务消费端发送包含非易变类型标识的数据更新通知消息。
示例地,该非易变类型标识也可以是预先设置的数据类型符号,例如可以是字符型数据类型符号info。
步骤611,该微服务消费端响应于接收到包含非易变类型标识的数据变更通知消息,向该微服务注册服务器发送包含该非易变类型标识的数据请求消息。
步骤612,该微服务注册服务器响应于接收到包含该非易变类型标识的数据请求消息,向该微服务消费端发送该非易变数据。
步骤613,该微服务消费端接收到该非易变数据后,将该微服务消费端本地存储的历史非易变数据更新为该非易变数据。
需要说明的是,将该微服务消费端本地存储的历史非易变数据更新为该非易变数据的具体实施方式可以参见图4中步骤404所示的内容,本公开在此不再赘述。
这样,在微服务提供端的目标服务实例对应的实例数据中只有非易变数据存在更新数据时,在该微服务注册服务器与该微服务消费端只进行该非易变数据的传输;能够避免所有实例数据整块传输,能够有效减少数据传输量,极大的降低网络带宽消耗,能够有效提升微服务发现效率,能够避免因服务发现感知延迟造成的服务调用异常的现象,从而能够有效提升基于微服务架构的目标服务调用的可靠性。
图7是在本公开又一示例性实施例示出的一种数据更新装置的框图;参见图7,该装置可以应用于微服务注册服务器,该装置可以包括:
第一接收模块701,用于接收微服务提供端发送的服务注册请求消息,该服务注册请求消息用于请求注册目标服务实例,该服务注册请求消息包括该目标服务实例的实例数据;
第一确定模块702,用于从该实例数据中确定易变数据和非易变数据;
第二确定模块703,用于在存储有该目标服务实例的历史实例数据的情况下,根据该历史实例数据确定目标数据是否存在更新数据,该目标数据包括该易变数据和/或该非易变数据;
第一发送模块704,用于在确定该目标数据存在更新数据的情况下,根据该目标数据向微服务消费端发送数据更新通知消息;
第二发送模块705,用于响应于接收该微服务消费端根据该数据更新通知消息发送的数据请求消息,向该微服务消费端发送该目标数据,以便该微服务消费端根据该目标数据更新存储的该目标服务实例的实例数据。
上述技术方案,能够避免所有实例数据整块传输,能够有效减少数据传输量,极大的降低网络带宽消耗,能够有效提升微服务发现效率,能够避免因服务发现感知延迟造成的服务调用异常的现象,从而能够有效提升基于微服务架构的目标服务调用的可靠性。
可选地,该第一确定模块702包括:
获取子模块7021,用于获取该实例数据的数据结构元素;
第一确定子模块7022,用于通过预设类型对应关系确定该数据结构元素对应的数据类型,该数据类型包括易变类型或者非易变类型;
第二确定子模块7023,用于在该数据类型为易变类型的情况下,确定该实例数据为易变数据;和/或,在该数据类型为非易变类型的情况下,确定该实例数据为非易变数据。
可选地,该预设类型对应关系通过以下方式预先确定:
获取历史时间段内至少一个服务实例对应的多个该数据结构元素中数据的变动频率;
根据每个该数据结构元素中数据的该变动频率生成该数据结构元素对应该数据类型,从而得到每个该据结构元素与该数据类型的对应关系。
可选地,该历史实例数据包括历史易变数据和历史非易变数据,该第二确定模块703用于:
确定该易变数据与该历史易变数据是否相同,以及该非易变数据与该历史非易变数据是否相同;
在确定该易变数据与该历史易变数据不同的情况下,确定该易变数据存在该更新数据;和/或,在确定该非易变数据与该历史非易变数据不同的情况下,确定该非易变数据存在该更新数据。
可选地,在确定该目标数据存在更新数据的情况下,该装置还包括:
第一存储模块706,用于在该目标数据包括该易变数据的情况下,将该易变数据存储至第一缓存;
第二存储模块707,用于在该目标数据包括该非易变数据的情况下,将该非易变数据存储至第二缓存;
相应地,该第二发送模块705包括:
第一发送子模块7051,用于在该目标数据包括该易变数据的情况下,将该第一缓存中缓存的该目标服务实例对应的易变数据发送至该微服务消费端;
第二发送子模块7052,用于在该目标数据包括该非易变数据的情况下,将该第二缓存中缓存的该目标服务实例对应的该非易变数据发送至该微服务消费端。
上述技术方案,通过将整块的实例数据拆分为易变数据和非易变数据,并在只有该易变数据存在变更时,只向微服务消费端发送该易变数据,在只有该非易变数据存在变更时,只向微服务消费端发送该非易变数据,能够有效减少数据传输量,避免数据传输占用太多的网络资源,也能够有效缩短数据传输延时,及时更新微服务提供端的节点数据,避免因为节点数据更新不及时造成的服务调用异常的现象,从而能够有效提升基于微服务架构的目标服务调用的可靠性。
图8是在本公开又一示例性实施例示出的一种数据更新装置的框图;参见图8,应用于微服务消费端,该装置可以包括:
第二接收模块801,用于在微服务注册服务器确定目标服务实例的目标数据中存在更新数据的情况下,接收该微服务注册服务器发送的数据变更通知消息;该目标数据包括易变数据和/或非易变数据;
第三发送模块802,用于根据该数据变更通知消息向该微服务注册服务器发送数据请求消息,该数据请求消息用于请求该目标数据;
第三接收模块803,用于接收该微服务注册服务器根据该数据请求消息发送的该目标数据;
更新模块804,用于根据该目标数据更新存储的该目标服务实例的实例数据。
上述技术方案,能够在只有该易变数据存在更新数据时,只从微服务注册服务器上获取该易变数据,在只有该非易变数据存在变更时,只从微服务注册服务器上获取该非易变数据,能够有效减少数据传输量,避免数据传输占用太多的网络资源,能够有效提升微服务发现效率,能够避免因服务发现感知延迟造成的服务调用异常的现象,从而能够有效提升基于微服务架构的目标服务调用的可靠性。
可选地,该更新模块804包括:
第一更新子模块8041,用于在该目标数据包括该易变数据的情况下,将该微服务消费端中的历史易变数据更新为该易变数据;
第二更新子模块8042,用于在该目标数据包括该非易变数据的情况下,将该微服务消费端中的历史非易变数据更新为该非易变数据。
可选地,该装置还包括:
第三确定模块805,用于确定待调用的目标服务;
获取模块806,用于获取本地存储的该目标服务对应的易变数据和非易变数据,以得到该目标服务的实例数据;
该获取模块806,还用于获取该目标服务对应的服务实例的节点路由负载信息;
调用模块807,用于根据该实例数据和该节点路由负载信息确定待访问服务实例,并通过该待访问服务实例调用该目标服务。
上述技术方案,在目标服务的调用过程中将该易变数据与该非易变数据进行融合,从而得到该目标服务的实例数据,根据该实例数据确定相应的目标服务实例,通过该目标服务实例调用该目标服务。由于该实例数据的更新是在只有该易变数据存在更新时,只更新该微服务消费端存储的该目标实例的易变数据,在只有该非易变数据存在更新时,只更新该服务消费端存储的该目标实例的非易变数据,因此,无需整个实例数据进行传输,能够有效减少数据传输量,避免数据传输占用太多的网络资源,也能够有效缩短数据传输延时,及时更新微服务提供端的节点数据,避免因为节点数据更新不及时造成的服务调用异常的现象,从而能够有效提升基于微服务架构的目标服务调用的可靠性。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种电子设备的框图。如图9所示,该电子设备900可以包括:处理器901,存储器902。该电子设备900还可以包括多媒体组件903,输入/输出(I/O)接口904,以及通信组件905中的一端或多端。
其中,处理器901用于控制该电子设备900的整体操作,以完成上述的数据更新方法中的全部或部分步骤。存储器902用于存储各种类型的数据以支持在该电子设备900的操作,这些数据例如可以包括用于在该电子设备900上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器902可以由任何类型的易失性或非易失性存储设备或端它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件903可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器902或通过通信组件905发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口904为处理器901和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或端实体按钮。通信组件905用于该电子设备900与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件905可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备900可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据更新方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据更新方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器902,上述程序指令可由电子设备900的处理器901执行以完成上述的数据更新方法。
图10是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备1000可以被提供为一服务器。参照图10,电子设备1000包括处理器1022,其数量可以为一个或多个,以及存储器1032,用于存储可由处理器1022执行的计算机程序。存储器1032中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1022可以被配置为执行该计算机程序,以执行上述的数据更新方法。
另外,电子设备1000还可以包括电源组件1026和通信组件1050,该电源组件1026可以被配置为执行电子设备1000的电源管理,该通信组件1050可以被配置为实现电子设备1000的通信,例如,有线或无线通信。此外,该电子设备1000还可以包括输入/输出(I/O)接口1058。电子设备1000可以操作基于存储在存储器1032的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据更新方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1032,上述程序指令可由电子设备1000的处理器1022执行以完成上述的数据更新方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (12)
1.一种数据更新方法,其特征在于,应用于微服务注册服务器,所述方法包括:
接收微服务提供端发送的服务注册请求消息,所述服务注册请求消息用于请求注册目标服务实例,所述服务注册请求消息包括所述目标服务实例的实例数据;
从所述实例数据中确定易变数据和非易变数据;
在存储有所述目标服务实例的历史实例数据的情况下,根据所述历史实例数据确定目标数据是否存在更新数据,所述目标数据包括所述易变数据和/或所述非易变数据;
在确定所述目标数据存在更新数据的情况下,根据所述目标数据向微服务消费端发送数据更新通知消息;
响应于接收所述微服务消费端根据所述数据更新通知消息发送的数据请求消息,向所述微服务消费端发送所述目标数据,以便所述微服务消费端根据所述目标数据更新存储的所述目标服务实例的实例数据;
根据所述目标数据更新存储的所述目标服务实例的实例数据包括:
在所述目标数据包括所述易变数据的情况下,将所述微服务消费端中的历史易变数据更新为所述易变数据;
在所述目标数据包括所述非易变数据的情况下,将所述微服务消费端中的历史非易变数据更新为所述非易变数据。
2.根据权利要求1所述的方法,其特征在于,所述从所述实例数据中确定易变数据和非易变数据包括:
获取所述实例数据的数据结构元素;
通过预设类型对应关系确定所述数据结构元素对应的数据类型,所述数据类型包括易变类型或者非易变类型;
在所述数据类型为易变类型的情况下,确定所述实例数据为易变数据;和/或,在所述数据类型为非易变类型的情况下,确定所述实例数据为非易变数据。
3.根据权利要求2所述的方法,其特征在于,所述预设类型对应关系通过以下方式预先确定:
获取历史时间段内至少一个服务实例对应的多个所述数据结构元素中数据的变动频率;
根据每个所述数据结构元素中数据的所述变动频率生成该数据结构元素对应所述数据类型,从而得到每个所述据结构元素与所述数据类型的对应关系。
4.根据权利要求1所述的方法,其特征在于,所述历史实例数据包括历史易变数据和历史非易变数据,所述根据所述历史实例数据确定目标数据是否存在更新数据包括:
确定所述易变数据与所述历史易变数据是否相同,以及所述非易变数据与所述历史非易变数据是否相同;
在确定所述易变数据与所述历史易变数据不同的情况下,确定所述易变数据存在所述更新数据;和/或,在确定所述非易变数据与所述历史非易变数据不同的情况下,确定所述非易变数据存在所述更新数据。
5.根据权利要求1-4任一项所述的方法,其特征在于,在确定所述目标数据存在更新数据的情况下,所述方法还包括:
在所述目标数据包括所述易变数据的情况下,将所述易变数据存储至第一缓存;
在所述目标数据包括所述非易变数据的情况下,将所述非易变数据存储至第二缓存;
相应地,所述向所述微服务消费端发送所述目标数据包括:
在所述目标数据包括所述易变数据的情况下,将所述第一缓存中缓存的所述目标服务实例对应的易变数据发送至所述微服务消费端;
在所述目标数据包括所述非易变数据的情况下,将所述第二缓存中缓存的所述目标服务实例对应的所述非易变数据发送至所述微服务消费端。
6.一种数据更新方法,其特征在于,应用于微服务消费端,所述方法包括:
在微服务注册服务器确定目标服务实例的目标数据中存在更新数据的情况下,接收所述微服务注册服务器发送的数据变更通知消息;所述目标数据包括易变数据和/或非易变数据;
根据所述数据变更通知消息向所述微服务注册服务器发送数据请求消息,所述数据请求消息用于请求所述目标数据;
接收所述微服务注册服务器根据所述数据请求消息发送的所述目标数据;
根据所述目标数据更新存储的所述目标服务实例的实例数据;
所述根据所述目标数据更新存储的所述目标服务实例的实例数据包括:
在所述目标数据包括所述易变数据的情况下,将所述微服务消费端中的历史易变数据更新为所述易变数据;
在所述目标数据包括所述非易变数据的情况下,将所述微服务消费端中的历史非易变数据更新为所述非易变数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
确定待调用的目标服务;
获取本地存储的所述目标服务对应的易变数据和非易变数据,以得到所述目标服务的实例数据;
获取所述目标服务对应的服务实例的节点路由负载信息;
根据所述实例数据和所述节点路由负载信息确定待访问服务实例;
通过所述待访问服务实例调用所述目标服务。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
在确定所述目标数据包括所述非易变数据的情况下,根据所述非易变数据更新所述目标服务实例对应的节点路由负载信息。
9.一种数据更新装置,其特征在于,应用于微服务注册服务器,所述装置包括:
第一接收模块,用于接收微服务提供端发送的服务注册请求消息,所述服务注册请求消息用于请求注册目标服务实例,所述服务注册请求消息包括所述目标服务实例的实例数据;
第一确定模块,用于从所述实例数据中确定易变数据和非易变数据;
第二确定模块,用于在存储有所述目标服务实例的历史实例数据的情况下,根据所述历史实例数据确定目标数据是否存在更新数据,所述目标数据包括所述易变数据和/或所述非易变数据;
第一发送模块,用于在确定所述目标数据存在更新数据的情况下,根据所述目标数据向微服务消费端发送数据更新通知消息;
第二发送模块,用于响应于接收所述微服务消费端根据所述数据更新通知消息发送的数据请求消息,向所述微服务消费端发送所述目标数据,以便所述微服务消费端根据所述目标数据更新存储的所述目标服务实例的实例数据,根据所述目标数据更新存储的所述目标服务实例的实例数据包括:在所述目标数据包括所述易变数据的情况下,将所述微服务消费端中的历史易变数据更新为所述易变数据;在所述目标数据包括所述非易变数据的情况下,将所述微服务消费端中的历史非易变数据更新为所述非易变数据。
10.一种数据更新装置,其特征在于,应用于微服务消费端,所述装置包括:
第二接收模块,用于在微服务注册服务器确定目标服务实例的目标数据中存在更新数据的情况下,接收所述微服务注册服务器发送的数据变更通知消息;所述目标数据包括易变数据和/或非易变数据;
第三发送模块,用于根据所述数据变更通知消息向所述微服务注册服务器发送数据请求消息,所述数据请求消息用于请求所述目标数据;
第三接收模块,用于接收所述微服务注册服务器根据所述数据请求消息发送的所述目标数据;
更新模块,用于根据所述目标数据更新存储的所述目标服务实例的实例数据;
所述更新模块包括:
第一更新子模块,用于在所述目标数据包括所述易变数据的情况下,将所述微服务消费端中的历史易变数据更新为所述易变数据;
第二更新子模块,用于在所述目标数据包括所述非易变数据的情况下,将所述微服务消费端中的历史非易变数据更新为所述非易变数据。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤;
或者,
该程序被处理器执行时实现权利要求6-8中任一项所述方法的步骤。
12.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤;
或者,
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求6-8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011057327.4A CN112235378B (zh) | 2020-09-29 | 2020-09-29 | 数据更新方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011057327.4A CN112235378B (zh) | 2020-09-29 | 2020-09-29 | 数据更新方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112235378A CN112235378A (zh) | 2021-01-15 |
CN112235378B true CN112235378B (zh) | 2022-12-16 |
Family
ID=74119749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011057327.4A Active CN112235378B (zh) | 2020-09-29 | 2020-09-29 | 数据更新方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112235378B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691599A (zh) * | 2021-08-16 | 2021-11-23 | 银清科技有限公司 | 一种服务实例间数据同步的方法及装置 |
CN115118703B (zh) * | 2022-07-28 | 2024-03-08 | 中国工商银行股份有限公司 | 服务调用方法及装置、电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973475A (zh) * | 2013-02-05 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 差异补丁包生成方法及下载方法、服务器、客户端 |
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
CN107273440A (zh) * | 2017-05-25 | 2017-10-20 | 北京邮电大学 | 计算机应用、数据存储方法、微服务和微数据库 |
CN108023788A (zh) * | 2017-11-29 | 2018-05-11 | 中国平安人寿保险股份有限公司 | 监控数据上传方法、装置、设备、系统及存储介质 |
CN108134696A (zh) * | 2017-12-15 | 2018-06-08 | 云宏信息科技股份有限公司 | 一种微服务配置更新方法及装置 |
CN108306917A (zh) * | 2017-01-13 | 2018-07-20 | 中国移动通信集团江西有限公司 | 数据处理方法和装置、微服务模块的注册方法及装置 |
CN109922151A (zh) * | 2019-03-12 | 2019-06-21 | 浪潮通用软件有限公司 | 一种微服务之间的数据共享方法 |
CN109977127A (zh) * | 2019-02-28 | 2019-07-05 | 北京创鑫旅程网络技术有限公司 | 数据更新方法及装置 |
CN113138995A (zh) * | 2021-05-13 | 2021-07-20 | 中国工商银行股份有限公司 | 微服务集群中更新通知方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357447A (zh) * | 2016-09-21 | 2017-01-25 | 努比亚技术有限公司 | 一种配置数据的同步方法及装置 |
US10275235B2 (en) * | 2017-09-18 | 2019-04-30 | International Business Machines Corporation | Adaptable management of web application state in a micro-service architecture |
-
2020
- 2020-09-29 CN CN202011057327.4A patent/CN112235378B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973475A (zh) * | 2013-02-05 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 差异补丁包生成方法及下载方法、服务器、客户端 |
CN106506605A (zh) * | 2016-10-14 | 2017-03-15 | 华南理工大学 | 一种基于微服务架构的SaaS应用构建方法 |
CN108306917A (zh) * | 2017-01-13 | 2018-07-20 | 中国移动通信集团江西有限公司 | 数据处理方法和装置、微服务模块的注册方法及装置 |
CN107273440A (zh) * | 2017-05-25 | 2017-10-20 | 北京邮电大学 | 计算机应用、数据存储方法、微服务和微数据库 |
CN108023788A (zh) * | 2017-11-29 | 2018-05-11 | 中国平安人寿保险股份有限公司 | 监控数据上传方法、装置、设备、系统及存储介质 |
CN108134696A (zh) * | 2017-12-15 | 2018-06-08 | 云宏信息科技股份有限公司 | 一种微服务配置更新方法及装置 |
CN109977127A (zh) * | 2019-02-28 | 2019-07-05 | 北京创鑫旅程网络技术有限公司 | 数据更新方法及装置 |
CN109922151A (zh) * | 2019-03-12 | 2019-06-21 | 浪潮通用软件有限公司 | 一种微服务之间的数据共享方法 |
CN113138995A (zh) * | 2021-05-13 | 2021-07-20 | 中国工商银行股份有限公司 | 微服务集群中更新通知方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112235378A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7252356B2 (ja) | モバイルエッジコンピューティングノードの選択方法、装置及びシステム並びにコンピュータプログラム | |
CN107800565B (zh) | 巡检方法、装置、系统、计算机设备和存储介质 | |
US11689606B2 (en) | Communication method, system and apparatus | |
CN110837424A (zh) | 服务实例确定方法、装置、存储介质及电子设备 | |
US11432137B2 (en) | Service notification method for mobile edge host and apparatus | |
CN111611091A (zh) | 一种业务对象的服务调用方法、装置及介质 | |
CN112235378B (zh) | 数据更新方法、装置、存储介质及电子设备 | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
CN113133129A (zh) | 一种业务处理的方法、装置和系统 | |
US11166176B2 (en) | Method for determining establishment reason, and terminal | |
CN110505318B (zh) | 统一资源定位符寻址方法及装置、网络系统 | |
CN113261249A (zh) | 一种数据传输方法、相关设备及计算机存储介质 | |
CN112732456A (zh) | 微服务调用方法、装置、电子设备和存储介质 | |
CN116233217B (zh) | 基于路由的页面跳转方法、装置、电子设备及存储介质 | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
JP2021010164A (ja) | 通知プリセットを利用した通知処理方法および装置 | |
CN113612643B (zh) | 云手机的网络配置方法、装置、设备以及存储介质 | |
CN115996187A (zh) | 路由信息处理方法、装置、路由信息交互系统和路由设备 | |
CN117834739A (zh) | 服务调用方法及装置 | |
CN114189893A (zh) | O-ran能力开放方法、通信系统、装置及存储介质 | |
CN113596119A (zh) | 边缘能力分发方法、系统、设备及计算机可读存储介质 | |
CN113556370A (zh) | 一种服务调用方法和装置 | |
CN117883789B (zh) | 数据获取方法、装置、设备、可读存储介质及程序产品 | |
CN117311854B (zh) | 微服务治理方法、装置、电子设备及可读取存储介质 | |
US20240357411A1 (en) | Method for controlling network slice, information processing apparatus, and system |
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 |