CN116647592A - 微服务发布方法以及流量转发对象的确定方法 - Google Patents

微服务发布方法以及流量转发对象的确定方法 Download PDF

Info

Publication number
CN116647592A
CN116647592A CN202310814406.2A CN202310814406A CN116647592A CN 116647592 A CN116647592 A CN 116647592A CN 202310814406 A CN202310814406 A CN 202310814406A CN 116647592 A CN116647592 A CN 116647592A
Authority
CN
China
Prior art keywords
server
address data
storage space
target
micro
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
Application number
CN202310814406.2A
Other languages
English (en)
Inventor
晏彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kangjian Information Technology Shenzhen Co Ltd
Original Assignee
Kangjian Information Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kangjian Information Technology Shenzhen Co Ltd filed Critical Kangjian Information Technology Shenzhen Co Ltd
Priority to CN202310814406.2A priority Critical patent/CN116647592A/zh
Publication of CN116647592A publication Critical patent/CN116647592A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及计算机技术领域及数字医疗技术领域,公开了一种微服务发布方法以及流量转发对象的确定方法;其发布方法包括:获取多台微服务服务器的地址数据;针对多台微服务服务器中的任一目标服务器,根据预设的地址配置文件更新接口和除目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间;将微服务发布到目标服务器上;调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除。本公开的负载均衡器可以根据外置缓存中的地址数据进行流量转发,无须重新加载配置文件,大大提高了微服务的发布效率,减少软件系统的维护成本和维护风险。

Description

微服务发布方法以及流量转发对象的确定方法
技术领域
本公开涉及计算机技术领域及数字医疗技术领域,具体而言,涉及一种微服务发布方法以及流量转发对象的确定方法。
背景技术
随着互联网技术的发展,传统的应用架构已满足不了实际需求,微服务架构随之产生,同时,为了提高应用系统的性能,可以使用Nginx(engine x,高效的HTTP负载均衡器)进行负载均衡。
比如,在数字医疗技术领域,随着科技的发展,线上医疗相关软件产品,比如提供医疗健康付费问诊咨询服务的软件产品越来越多,对于较复杂的应用软件系统,在向多台服务器发布微服务时,为了保证Nginx服务器正常代理转发入口流量,需要对Nginx服务器多次进行重新加载配置文件操作,导致微服务的发布效率较低,进而增大了线上医疗相关软件系统的维护成本和维护风险。
发明内容
针对上述情况,本公开实施例提供了一种微服务发布方法以及流量转发对象的确定方法,旨在解决上述问题或者至少部分地解决上述问题。
第一方面,本公开实施例提供了一种微服务发布方法,所述方法包括:
获取多台微服务服务器的地址数据;
针对所述多台微服务服务器中的任一目标服务器,根据预设的地址配置文件更新接口和除所述目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,以使各所述负载均衡服务器从各所述更新后存储空间中选择至少一个地址数据进行流量转发;
将微服务发布到所述目标服务器上;
调用预设的地址配置文件删除接口,将各所述可用服务器的地址数据从各所述更新后存储空间中删除。
第二方面,本公开实施例还提供了一种流量转发对象的确定方法,所述方法包括:
获取目标微服务集群的目标标识信息和预设的默认地址数据集合;
判断更新后存储空间中是否存在与所述目标标识信息对应的目标地址数据集合;
若所述更新后存储空间中存在与所述目标标识信息对应的目标地址数据集合,则将所述目标地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象;
若所述更新后存储空间中不存在与所述目标标识信息对应的目标地址数据集合,则将所述默认地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象。
第三方面,本公开实施例还提供了一种微服务发布装置,所述装置包括:
第一获取模块,用于获取多台微服务服务器的地址数据;
更新模块,用于针对所述多台微服务服务器中的任一目标服务器,根据预设的地址配置文件更新接口和除所述目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,以使各所述负载均衡服务器从各所述更新后存储空间中选择至少一个地址数据进行流量转发;
发布模块,用于将微服务发布到所述目标服务器上;
删除模块,用于调用预设的地址配置文件删除接口,将各所述可用服务器的地址数据从各所述更新后存储空间中删除。
第四方面,本公开实施例还提供了一种流量转发对象的确定装置,所述装置包括:
第二获取模块,用于获取目标微服务集群的目标标识信息和预设的默认地址数据集合;
判断模块,用于判断更新后存储空间中是否存在与所述目标标识信息对应的目标地址数据集合;
第一确定模块,用于若所述更新后存储空间中存在与所述目标标识信息对应的目标地址数据集合,则将所述目标地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象;
第二确定模块,用于若所述更新后存储空间中不存在与所述目标标识信息对应的目标地址数据集合,则将所述默认地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象。
第五方面,本公开实施例还提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行上述第一方面所述的微服务发布方法或第二方面所述的流量转发对象的确定方法的步骤。
第六方面,本公开实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储一个或多个程序,一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行上述第一方面所述的微服务发布方法或第二方面所述的流量转发对象的确定方法的步骤。
本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:
本公开实施例提供的微服务发布方法,针对多台微服务服务器中的任一目标服务器,根据预设的地址配置文件更新接口和除目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,以使各负载均衡服务器从各更新后存储空间中选择至少一个地址数据进行流量转发;将微服务发布到目标服务器上;调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除。可以看到,本公开实施例在向目标服务器上发布微服务之前,可以通过调用地址配置文件更新接口和删除接口,修改作为外置缓存的待更新存储空间中的可用服务器的地址数据,这样,负载均衡器可以根据更新后存储空间中的地址数据来进行流量转发,而无须先进行重新加载配置文件操作,再进行流量转发,由此,减少了重新加载配置文件操作的执行时间,从而大大提高了微服务的发布效率,进而为线上医疗相关软件系统提供强有力的技术支持,减少软件系统的维护成本和维护风险,解决软件系统的微服务发布和部署问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1示出了本公开实施例提供的微服务发布方法的流程示意图;
图2示出了本公开另一个实施例提供的微服务发布方法的流程示意图;
图3示出了本公开实施例提供的微服务发布装置的结构示意图;
图4示出了本公开实施例提供的流量转发对象的确定方法的流程示意图;
图5示出了本公开实施例提供的流量转发对象的确定装置的结构示意图;
图6示出了本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合本公开具体实施例及相应的附图对本公开技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。
以下结合附图,详细说明本公开各实施例提供的技术方案。
随着互联网技术的发展,传统的应用架构已满足不了实际需求,微服务架构随之产生,同时,为了提高应用系统的性能,可以使用Nginx(engine x,高效的HTTP负载均衡器)进行负载均衡。比如,在数字医疗技术领域,随着科技的发展,线上医疗相关软件产品,比如提供医疗健康付费问诊咨询服务的软件产品越来越多,对于较复杂的应用软件系统,在向多台服务器发布微服务时,为了保证Nginx服务器正常代理转发入口流量,需要对Nginx服务器多次进行重新加载配置文件操作,具体的,比如,微服务集群包括服务器1、服务器2、服务器3和服务器4,现需要将微服务依次发布到前述4台服务器上,发布在服务器1上时,先将Nginx服务器中upstream配置文件中的服务器ip地址修改为服务器2、服务器3和服务器4的ip地址,并执行重新加载配置文件操作,从而不影响Nginx服务器向服务器2、服务器3和服务器4转发入口流量,在发布完成后,再将upstream配置文件中的服务器ip地址修改为服务器1、服务器2、服务器3和服务器4的ip地址,并执行重新加载配置文件操作,这样就完成了服务器1的发布,其他三台服务器的发布与服务器1相同,由此可见,此发布方式需要修改多次Nginx服务器的upstream配置文件,多次进行重新加载配置文件操作,从而导致微服务的发布效率较低,进而增大了线上医疗相关软件系统的维护成本和维护风险。
基于此,本发明提出了一种微服务发布方法以及流量转发对象的确定方法,下面通过具体的实施例对本公开进行详细的描述。
首先对本公开实施例所公开的一种微服务发布方法进行详细介绍。本公开实施例所提供的微服务发布方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器。在一些可能的实现方式中,该技术方案可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
图1示出了本公开实施例提供的微服务发布方法的流程示意图,从图1可以看出,本公开实施例至少包括步骤S101-步骤S104:
步骤S101:获取多台微服务服务器的地址数据。
步骤S102:针对多台微服务服务器中的任一目标服务器,根据预设的地址配置文件更新接口和除目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,以使各负载均衡服务器从各更新后存储空间中选择至少一个地址数据进行流量转发。
步骤S103:将微服务发布到目标服务器上。
步骤S104:调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除。
从图1所示的方法可以看出,本公开实施例针对多台微服务服务器中的任一目标服务器,根据预设的地址配置文件更新接口和除目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,以使各负载均衡服务器从各更新后存储空间中选择至少一个地址数据进行流量转发;将微服务发布到目标服务器上;调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除。可以看到,本公开实施例在向目标服务器上发布微服务之前,可以通过调用地址配置文件更新接口和删除接口,修改作为外置缓存的待更新存储空间中的可用服务器的地址数据,这样,负载均衡器可以根据更新后存储空间中的地址数据来进行流量转发,而无须先进行重新加载配置文件操作,再进行流量转发,由此,减少了重新加载配置文件操作的执行时间,从而大大提高了微服务的发布效率,进而为线上医疗相关软件系统提供强有力的技术支持,减少软件系统的维护成本和维护风险,解决软件系统的微服务发布和部署问题。
下述对步骤S101 S104进行相对具体的说明。
针对步骤S101:
多台微服务服务器属于同一个微服务集群,其上部署有同样的微服务系统。微服务服务器的地址数据为服务器的唯一标识,比如,服务器的IP地址等,对此,本申请不作限定。
一种可能的实施方式中,所述获取多台微服务服务器的地址数据,包括:
步骤A1,获取多台微服务服务器对应的微服务集群的标识信息。
步骤A2,以标识信息为入口参数,调用地址管理数据库的地址查询接口,得到多台微服务服务器的地址数据。
在实际应用场景中,负载均衡服务器可以控制多个微服务集群,为了方便管理,每个微服务集群都有对应的标识信息,比如,微服务集群1的标识信息为L10001。地址管理数据库用于管理微服务集群中各微服务服务器地址数据,地址管理数据库可以为CMDB(Configuration Management Database,配置管理数据库)、GraphDatabase(图形数据库)等。其中,CMDB是一个逻辑数据库,包含了配置项全生命周期的信息以及配置项之间的关系(物理关系、实时通信关系、非实时通信关系和依赖关系)。GraphDatabase是基于图论实现的一种新型NoSQL数据库。它的数据存储结构和数据的查询方式都是以图论为基础的。
获取到微服务集群的标识信息后,比如标识信息为L10001,则可以以L10001为入口参数,调用地址管理数据库的地址查询接口,得到微服务集群中所有的微服务服务器的地址数据,比如,L10001对应的微服务集群1中所有的微服务服务器的地址数据分别为:192.168.1.1、192.168.1.2、192.168.1.3和192.168.1.4。
针对步骤S102:
为了将新版的微服务系统发布到属于同一微服务集群的多台微服务服务器上,需要逐个对各台微服务服务器执行步骤S102-S104。
预设的地址配置文件更新接口是负载均衡服务器所提供的接口。地址配置文件中包含有步骤S101中所述的地址数据,即负载均衡服务器在将入口流量代理转发到微服务集群中时,所需的微服务服务器的地址,比如IP地址。
针对多台微服务服务器中的任一目标服务器,可以根据预设的地址配置文件更新接口和除目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间。比如,多台微服务服务器包括微服务服务器1、微服务服务器2、微服务服务器3和微服务服务器4,目标服务器为微服务服务器1,则可以调用预设的地址配置文件更新接口,将微服务服务器2、微服务服务器3和微服务服务器4中的至少一台服务器的IP地址存储在待更新存储空间中,以便后续负载均衡服务器从待更新存储空间中选择至少一台服务器进行入口流量转发,由于更新后存储空间中不存在微服务服务器1的IP地址,故将微服务系统发布到微服务服务器1的过程中不会影响到负载均衡服务器日常的流量转发。
一种可能的实施方式中,所述待更新存储空间为共享内存;所述根据预设的地址配置文件更新接口和除目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,包括:
针对至少一台负载均衡服务器中任一目标负载均衡服务器,以目标负载均衡服务器的标识数据,和至少一台可用服务器的地址数据为输入参数,调用预设的地址配置文件更新接口,将各地址数据存储到目标负载均衡服务器的待更新存储空间中,得到各更新后存储空间。
实施时,待更新存储空间可以为Openresty服务器的共享内存,可以根据下述代码为负载均衡服务器分配20M的共享内存:
http{include mime.types;
default type application/octet-stream;
lua_shared_dictups_zone 20m;}
在本实施例中,可以对各台负载均衡服务器的待更新存储空间分别进行数据更新,得到对应的更新后存储空间。下面对任一目标负载均衡服务器的待更新存储空间的数据更新过程,进行示例性说明。
若待更新存储空间为目标负载均衡服务器的共享内存,则可以利用Openresty服务器的lua_shard_dict模块,得到预设的地址配置文件更新接口,具体的,可以根据下述代码得到该更新接口并部署到目标负载均衡服务器中:
location=/ups_update{
content_by_lua'
local upsmgt=require"upsmgt"
local result=upsmgt:update()
ngx.say(result)';}
实施时,可以以目标负载均衡服务器的标识数据,和至少一台可用服务器的地址数据为输入参数,调用预设的地址配置文件更新接口,将各地址数据存储到目标负载均衡服务器的共享内存中,得到更新后存储空间。在一些实施例中,可用服务器包括可用服务器1和可用服务器2,则可以通过下述研发人员输入的http请求进行数据更新(将ip地址192.168.1.1存储到nginx-server-01的待更新存储空间中):http://nginx-server-01/ups_update?ups=192.168.1.1,其中,nginx-server-01为目标负载均衡服务器的标识数据,192.168.1.1为可用服务器1的地址数据。
在另一些实施例中,可用服务器包括可用服务器1和可用服务器2,则可以通过下述研发人员输入的http请求进行数据更新(将ip地址192.168.1.1和192.168.1.2存储到nginx-server-01的待更新存储空间中):http://nginx-server-01/ups_update?ups=192.168.1.1:192.168.1.2,其中,192.168.1.2为可用服务器2的地址数据。
另一种可能的实施方式中,微服务集群的数量为多个,则可以以微服务集群的标识信息、目标负载均衡服务器的标识数据,和至少一台可用服务器的地址数据为输入参数,调用预设的地址配置文件更新接口,将至少一台可用服务器的地址数据存储到目标负载均衡服务器的待更新存储空间中,得到更新后存储空间。比如,若可用服务器属于微服务集群1,则可以通过下述研发人员输入的http请求进行数据更新(将ip地址192.168.1.1存储到微服务集群1中服务器nginx-server-01的待更新存储空间中):http://nginx-server-01/ups_update?ups=192.168.1.1&location_id=L10001,其中,L10001为微服务集群1的标识信息。
如前文所述,若待更新存储空间为共享内存,则对于每一台负载均衡服务器,都需要调用预设的地址配置文件更新接口,对待更新存储空间进行数据更新,地址数据更新过程较为繁琐,更新效率较低。
基于此,一种可能的实施方式中,所述待更新存储空间为键值数据库;所述根据预设的地址配置文件更新接口和除目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,包括:
以至少一台可用服务器的地址数据为输入参数,调用预设的地址配置文件更新接口,将各地址数据存储到待更新存储空间中,得到各更新后存储空间。
在本实施例中,键值数据库可以为Redis数据库、Memcached数据库等。实施时,比如,Ngnix服务器可以利用HttpRedis模块、HttpRedis2Module模块等与Redis数据库进行交互。
比如,可以以至少一台可用服务器的地址数据为输入参数,调用预设的地址配置文件更新接口,将各地址数据存储到Redis数据库中,得到更新后Redis数据库。再比如,微服务集群的数量为多个,则可以以微服务集群的标识信息和至少一台可用服务器的地址数据为输入参数,调用预设的地址配置文件更新接口,将各地址数据存储到Redis数据库中,得到更新后Redis数据库。
从上述实施例可以看出,通过将地址数据统一放在键值数据库中,避免了每一台负载均衡服务器都需要对待更新存储空间进行数据更新,使得地址数据的更新更加方便快捷,提高了发布效率。针对步骤S102-S103:
在得到至少一个更新后存储空间,并将微服务发布到目标服务器上之后,可以调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除。在一些实施例中,可以调用预设的地址配置文件删除接口,以目标负载均衡服务器的标识数据、微服务集群的标识信息和各可用服务器的地址数据为输入参数,将各可用服务器的地址数据从更新后存储空间中删除。
一种可能的实施方式中,所述待更新存储空间为共享内存;所述调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除,包括:
针对至少一台负载均衡服务器中任一目标负载均衡服务器,以目标负载均衡服务器的标识数据和标识信息为输入参数,调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除。
在本实施例中,可以对各台负载均衡服务器的更新后存储空间分别进行数据删除。下面针对任一目标负载均衡服务器的更新后存储空间的数据删除过程,进行示例性说明。
实施时,若待更新存储空间为目标负载均衡服务器的共享内存,则可以利用Openresty服务器的lua_shard_dict模块,得到预设的地址配置文件删除接口,具体的,可以根据下述代码得到前述删除接口并部署到目标负载均衡服务器中:
location=/ups_delete{
content_by_lua'
local upsmgt=require"upsmgt"
local result=upsmgt:delete()
ngx.say(result)';}
实施时,可以以目标负载均衡服务器的标识数据,和微服务集群的标识信息为输入参数,调用预设的地址配置文件删除接口,将微服务集群中各可用服务器的地址数据从至少一个更新后存储空间中删除。比如,在一些实施例中,可以通过下述研发人员输入的http请求进行数据删除:http://nginx-server-01/ups_delete?location_id=L10001。
在一些实施例中,数字医疗场景下,比如,针对一专注心理健康的服务软件,该软件使用微服务架构,软件被拆分为微服务系统1(心理咨询微服务系统)、微服务系统2(心理课程微服务系统)和微服务系统3(心理测评微服务系统),微服务集群A1用于实现微服务系统1;微服务集群A2用于实现微服务系统2;微服务集群A3用于实现微服务系统3,现开发出新版微服务系统1,需要将新版的微服务系统1.1发布在微服务集群A1中的微服务服务器A1和微服务服务器A2上,可以先获取微服务服务器A1和微服务服务器A2的地址数据;针对微服务服务器A1,根据预设的地址配置文件更新接口和微服务服务器A2的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间后,将微服务系统1.1发布到微服务服务器A1上,调用预设的地址配置文件删除接口,将微服务服务器A2的地址数据从至少一个更新后存储空间中删除;针对微服务服务器A2,根据预设的地址配置文件更新接口和微服务服务器A1的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间后,将微服务系统1.1发布到微服务服务器A2上,调用预设的地址配置文件删除接口,将微服务服务器A1的地址数据从至少一个更新后存储空间中删除,以此,完成微服务系统1.1的发布,可以看到,在向服务器上发布微服务系统1.1之前,通过调用地址配置文件更新接口和删除接口,修改待更新存储空间中可用服务器的地址数据,这样,负载均衡器可以根据更新后存储空间中的地址数据来进行流量转发,而无需先进行重新加载配置文件操作,再进行流量转发,由此,减少了重新加载配置文件操作的执行时间,从而大大提高了微服务的发布效率。
图2示出了本公开另一个实施例提供的微服务发布方法的流程示意图,由图2可知,本实施例包括以下步骤S201-步骤S205:
步骤S201:获取多台微服务服务器对应的微服务集群的标识信息。
步骤S202:以标识信息为入口参数,调用地址管理数据库的地址查询接口,得到多台微服务服务器的地址数据。
步骤S203:待更新存储空间为共享内存;针对多台微服务服务器中的任一目标服务器,针对至少一台负载均衡服务器中任一目标负载均衡服务器,以目标负载均衡服务器的标识数据,和至少一台可用服务器的地址数据为输入参数,调用预设的地址配置文件更新接口,将各地址数据存储到目标负载均衡服务器的待更新存储空间中,得到各更新后存储空间。在一些实施例中,待更新存储空间为键值数据库,则可以以至少一台可用服务器的地址数据为输入参数,调用预设的地址配置文件更新接口,将各地址数据存储到所述待更新存储空间中,得到各更新后存储空间。
步骤S204:将微服务发布到目标服务器上。
步骤S205:针对至少一台负载均衡服务器中任一目标负载均衡服务器,以目标负载均衡服务器的标识数据,和标识信息为输入参数,调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除。在一些实施例中,待更新存储空间为键值数据库,则可以以目标负载均衡服务器的标识数据,和标识信息为输入参数,调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除。
图3示出了本公开实施例提供的微服务发布装置的结构示意图,参见图3所示,装置300包括:
第一获取模块301,用于获取多台微服务服务器的地址数据。
更新模块302,用于针对多台微服务服务器中的任一目标服务器,根据预设的地址配置文件更新接口和除目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,以使各负载均衡服务器从各所述更新后存储空间中选择至少一个地址数据进行流量转发。
发布模块303,用于将微服务发布到目标服务器上。
删除模块304,用于调用预设的地址配置文件删除接口,将各可用服务器的地址数据从各更新后存储空间中删除。
在本公开的一些实施例中,在上述装置中,所述待更新存储空间为共享内存;所述更新模块302,用于:针对所述至少一台负载均衡服务器中任一目标负载均衡服务器,以所述目标负载均衡服务器的标识数据,和所述至少一台可用服务器的地址数据为输入参数,调用所述预设的地址配置文件更新接口,将各所述地址数据存储到所述目标负载均衡服务器的待更新存储空间中,得到各所述更新后存储空间。
在本公开的一些实施例中,在上述装置中,所述待更新存储空间为共享内存;所述更新模块302,用于:以所述至少一台可用服务器的地址数据为输入参数,调用所述预设的地址配置文件更新接口,将各所述地址数据存储到所述待更新存储空间中,得到各所述更新后存储空间。
在本公开的一些实施例中,在上述装置中,所述第一获取模块301,用于:
获取所述多台微服务服务器对应的微服务集群的标识信息;
以所述标识信息为入口参数,调用地址管理数据库的地址查询接口,得到所述多台微服务服务器的地址数据。
在本公开的一些实施例中,在上述装置中,所述删除模块304,用于:针对所述至少一台负载均衡服务器中任一目标负载均衡服务器,以所述目标负载均衡服务器的标识数据,和所述标识信息为输入参数,调用所述预设的地址配置文件删除接口,将各所述可用服务器的地址数据从各所述更新后存储空间中删除。
需要说明的是,上述任一的微服务发布装置可一一对应实现前述的微服务发布方法,这里不再赘述。
基于相同的构思,本公开实施例还提供了一种流量转发对象的确定方法。图4示出了本公开实施例提供的流量转发对象的确定方法的流程示意图,从图4可以看出,本公开实施例至少包括步骤S401-步骤S404:
步骤S401:获取目标微服务集群的目标标识信息和预设的默认地址数据集合。
步骤S402:判断更新后存储空间中是否存在与目标标识信息对应的目标地址数据集合。
步骤S403:若更新后存储空间中存在与目标标识信息对应的目标地址数据集合,则将目标地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象。
步骤S404:若更新后存储空间中不存在与目标标识信息对应的目标地址数据集合,则将默认地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象。
本实施例的执行主体为负载均衡服务器,比如Ngnix服务器。预设的默认地址数据集合为目标微服务集群内所有的机器地址数据。比如,预设的默认地址数据集合为:
upstream default_ups{
server 192.168.1.1:8080;
server 192.168.1.2:8080;
server 192.168.1.3:8080;
server 192.168.1.4:8080;}
获取到目标微服务集群的目标标识信息和预设的默认地址数据集合后,负载均衡服务器可以判断更新后存储空间中是否存在与目标标识信息对应的目标地址数据集合;若存在,将目标地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象;若不存在,则将默认地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象。具体的,可以根据下述配置实现上述过程:
Location/service-1/{
set_by_lua_file$my_ups./lualib/entrance.lua"L10001""default_ups"
proxy_pass$scheme://$my_ups;}
比如,设目标标识信息为L10001,目标标识信息对应的地址数据为192.168.1.1、192.168.1.2和192.168.1.3,负载均衡服务器可以判断更新后存储空间中是否存在目标地址数据集合,比如{192.168.1.1、192.168.1.2和192.168.1.3};若存在,将目标地址数据集合中至少一个地址数据对应的微服务服务器,比如,192.168.1.1对应的服务器,作为流量转发对象;若不存在,则将默认地址数据集合中至少一个地址数据对应的微服务服务器,比如192.168.1.4对应的服务器,作为流量转发对象。
图5示出了本公开实施例提供的流量转发对象的确定装置的结构示意图,由图5可知,所述装置500包括:
第二获取模块501,用于获取目标微服务集群的目标标识信息和预设的默认地址数据集合。
判断模块502,用于判断更新后存储空间中是否存在与所述目标标识信息对应的目标地址数据集合。
第一确定模块503,用于若所述更新后存储空间中存在与所述目标标识信息对应的目标地址数据集合,则将所述目标地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象。
第二确定模块504,用于若所述更新后存储空间中不存在与所述目标标识信息对应的目标地址数据集合,则将所述默认地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象。
需要说明的是,上述任一的流量转发对象的确定装置可一一对应实现前述的流量转发对象的确定方法,这里不再赘述。
图6示出了本公开实施例所提供的一种电子设备的结构示意图。如图6所示,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成流量转发对象的确定装置或微服务发布装置。处理器,执行存储器所存放的程序,并具体用于执行前述方法。
处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备可执行本公开多个实施例提供的微服务发布方法或流量转发对象的确定方法,并实现成微服务发布装置在图3所示实施例的功能或流量转发对象的确定装置在图5所示实施例的功能,本公开实施例在此不再赘述。
本公开实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行本公开多个实施例提供的微服务发布方法或流量转发对象的确定方法。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的同一要素。
本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。

Claims (10)

1.一种微服务发布方法,其特征在于,所述方法包括:
获取多台微服务服务器的地址数据;
针对所述多台微服务服务器中的任一目标服务器,根据预设的地址配置文件更新接口和除所述目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,以使各所述负载均衡服务器从各所述更新后存储空间中选择至少一个地址数据进行流量转发;
将微服务发布到所述目标服务器上;
调用预设的地址配置文件删除接口,将各所述可用服务器的地址数据从各所述更新后存储空间中删除。
2.根据权利要求1所述的方法,其特征在于,所述待更新存储空间为共享内存;所述根据预设的地址配置文件更新接口和除所述目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,包括:
针对所述至少一台负载均衡服务器中任一目标负载均衡服务器,以所述目标负载均衡服务器的标识数据,和所述至少一台可用服务器的地址数据为输入参数,调用所述预设的地址配置文件更新接口,将各所述地址数据存储到所述目标负载均衡服务器的待更新存储空间中,得到各所述更新后存储空间。
3.根据权利要求1所述的方法,其特征在于,所述待更新存储空间为键值数据库;所述根据预设的地址配置文件更新接口和除所述目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,包括:
以所述至少一台可用服务器的地址数据为输入参数,调用所述预设的地址配置文件更新接口,将各所述地址数据存储到所述待更新存储空间中,得到各所述更新后存储空间。
4.根据权利要求1-3任一所述的方法,其特征在于,所述获取多台微服务服务器的地址数据,包括:
获取所述多台微服务服务器对应的微服务集群的标识信息;
以所述标识信息为入口参数,调用地址管理数据库的地址查询接口,得到所述多台微服务服务器的地址数据。
5.根据权利要求4所述的方法,其特征在于,所述调用预设的地址配置文件删除接口,将各所述可用服务器的地址数据从各所述更新后存储空间中删除,包括:
针对所述至少一台负载均衡服务器中任一目标负载均衡服务器,以所述目标负载均衡服务器的标识数据,和所述标识信息为输入参数,调用所述预设的地址配置文件删除接口,将各所述可用服务器的地址数据从各所述更新后存储空间中删除。
6.一种流量转发对象的确定方法,其特征在于,所述方法包括:
获取目标微服务集群的目标标识信息和预设的默认地址数据集合;
判断更新后存储空间中是否存在与所述目标标识信息对应的目标地址数据集合;
若所述更新后存储空间中存在与所述目标标识信息对应的目标地址数据集合,则将所述目标地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象;
若所述更新后存储空间中不存在与所述目标标识信息对应的目标地址数据集合,则将所述默认地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象。
7.一种微服务发布装置,其特征在于,所述装置包括:
第一获取模块,用于获取多台微服务服务器的地址数据;
更新模块,用于针对所述多台微服务服务器中的任一目标服务器,根据预设的地址配置文件更新接口和除所述目标服务器以外的至少一台可用服务器的地址数据,对至少一台负载均衡服务器的待更新存储空间进行数据更新,得到至少一个更新后存储空间,以使各所述负载均衡服务器从各所述更新后存储空间中选择至少一个地址数据进行流量转发;
发布模块,用于将微服务发布到所述目标服务器上;
删除模块,用于调用预设的地址配置文件删除接口,将各所述可用服务器的地址数据从各所述更新后存储空间中删除。
8.一种流量转发对象的确定装置,其特征在于,所述装置包括:
第二获取模块,用于获取目标微服务集群的目标标识信息和预设的默认地址数据集合;
判断模块,用于判断更新后存储空间中是否存在与所述目标标识信息对应的目标地址数据集合;
第一确定模块,用于若所述更新后存储空间中存在与所述目标标识信息对应的目标地址数据集合,则将所述目标地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象;
第二确定模块,用于若所述更新后存储空间中不存在与所述目标标识信息对应的目标地址数据集合,则将所述默认地址数据集合中至少一个地址数据对应的微服务服务器,作为流量转发对象。
9.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-5任一所述的微服务发布方法或权利要求6所述的流量转发对象的确定方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行如权利要求1-5任一所述的微服务发布方法或权利要求6所述的流量转发对象的确定方法的步骤。
CN202310814406.2A 2023-07-04 2023-07-04 微服务发布方法以及流量转发对象的确定方法 Pending CN116647592A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310814406.2A CN116647592A (zh) 2023-07-04 2023-07-04 微服务发布方法以及流量转发对象的确定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310814406.2A CN116647592A (zh) 2023-07-04 2023-07-04 微服务发布方法以及流量转发对象的确定方法

Publications (1)

Publication Number Publication Date
CN116647592A true CN116647592A (zh) 2023-08-25

Family

ID=87643599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310814406.2A Pending CN116647592A (zh) 2023-07-04 2023-07-04 微服务发布方法以及流量转发对象的确定方法

Country Status (1)

Country Link
CN (1) CN116647592A (zh)

Similar Documents

Publication Publication Date Title
CN107450981B (zh) 一种区块链共识方法及设备
CN110704037B (zh) 一种规则引擎实现方法及装置
CN107450979B (zh) 一种区块链共识方法及装置
CN111104664B (zh) 一种电子设备的风险识别方法及服务器
CN107528885B (zh) 一种业务请求处理方法及装置
CN108845876B (zh) 一种业务分配的方法及装置
CN110780870A (zh) 一种业务执行方法、装置、设备及存储介质
CN110851207B (zh) 状态转换管理方法、装置、电子设备和存储介质
CN111651467A (zh) 一种区块链节点接口发布调用方法和装置
CN111988429A (zh) 算法调度方法以及系统
CN111899008A (zh) 资源转移方法、装置、设备及系统
CN111694639B (zh) 进程容器地址的更新方法、装置和电子设备
CN109345081B (zh) 一种数据采集方法、装置及电子设备
CN116305298A (zh) 一种算力资源管理方法、装置、存储介质及电子设备
CN108647102B (zh) 异构系统的服务请求处理方法、装置和电子设备
CN111949297B (zh) 一种区块链智能合约升级方法、装置及电子设备
CN107301097B (zh) 一种调用java对象、java对象的引用地址信息的存储方法及装置
CN111796864A (zh) 一种数据校验的方法及装置
CN116647592A (zh) 微服务发布方法以及流量转发对象的确定方法
CN110750271B (zh) 服务聚合、聚合服务的执行方法、装置和电子设备
CN107291439B (zh) 一种目标增量数据构建方法及装置
CN106548331B (zh) 一种确定发布顺序的方法及装置
CN110688430B (zh) 一种获得数据旁路的方法、装置及电子设备
CN109615465B (zh) 业务订单的处理方法、装置和电子设备
CN111967767A (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