CN113949708B - 一种支持灰度升级访问流量控制的服务总线设计方法 - Google Patents
一种支持灰度升级访问流量控制的服务总线设计方法 Download PDFInfo
- Publication number
- CN113949708B CN113949708B CN202111029891.XA CN202111029891A CN113949708B CN 113949708 B CN113949708 B CN 113949708B CN 202111029891 A CN202111029891 A CN 202111029891A CN 113949708 B CN113949708 B CN 113949708B
- Authority
- CN
- China
- Prior art keywords
- service
- address
- module
- directory
- preset
- 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
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种支持灰度升级访问流量控制的服务总线设计方法,该方法包括:创建与服务总线后台服务目录耦合的负载均衡器;创建访问控制模块;创建消息服务模块;当按预设升级方式升级一个服务的至少一个服务实例时,访问者在访问服务时,利用访问者发送寻址请求至服务目录,服务目录在访问控制模块的预设访问控制方式的限定下,根据寻址请求返回寻址结果;当所有服务实例均未进行升级时,若访问者在访问服务时需要发送寻址请求至服务目录,利用访问者发送寻址请求至服务目录,服务目录接收寻址请求,根据寻址请求返回寻址结果。本发明的方法能够实现非服务端负载均衡方式的灰度升级的访问流量控制,提高软件系统在机动环境下的适应性。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种支持灰度升级访问流量控制的服务总线设计方法。
背景技术
目前,在一些互联网的软件应用服务进行升级时,灰度升级是一种比较常用的方案,灰度升级可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题。
对于一个复杂的服务化软件系统来说,除了服务端负载均衡方式外,还存在客户端负载均衡。当前服务的灰度升级,往往通过容器管理工具k8s和Istio等来实现,基本都是服务端负载均衡的灰度升级实现,缺少非服务端负载均衡的灰度升级方法。并且,在灰度升级中,当对部分服务进行升级后,应用/服务按照比例或者一定规则来访问旧服务实例或者新服务实例时,需要进行相应的访问流量控制,目前也缺少非服务端负载均衡的灰度升级下的访问流量控制方法。
因此,如何实现非服务端负载均衡的灰度升级,以及如何实现非服务端负载均衡的灰度升级访问流量的控制,成为本领域技术人员亟待解决的技术问题。
发明内容
为解决上述现有技术中存在的部分或全部技术问题,本发明提供一种支持灰度升级访问流量控制的服务总线设计方法。
本发明的技术方案如下:
提供了一种支持灰度升级访问流量控制的服务总线设计方法,所述方法包括:
创建与服务总线后台服务目录耦合的负载均衡器;
创建访问控制模块,其中,所述访问控制模块被配置为在有服务实例被升级时以预设访问控制方式对所述服务目录的寻址结果进行限定;
创建消息服务模块,其中,所述消息服务模块被配置为传输消息,服务总线客户端能够订阅所述消息服务模块上预设名称的消息,预设名称为访问者需要访问的预设服务名;
当按预设升级方式升级一个服务的至少一个服务实例时,通过所述访问控制模块发布消息到所述消息服务模块,通过所述服务总线客户端接收所述消息服务模块上的消息,并根据消息内容执行指定动作,在所述服务总线客户端消除服务实例地址缓存后,访问者在访问服务时,利用所述访问者发送寻址请求至所述服务目录,所述服务目录在所述访问控制模块的预设访问控制方式的限定下,根据寻址请求返回寻址结果,其中,消息对应的名称为进行升级的预设服务名,消息内容包括:立即清除服务实例地址,立即清除服务实例地址并每间隔预设时间清理一次服务实例地址,以及立即清除服务实例地址后不再缓存服务实例地址中的一种,所述访问者为软件系统中需要访问服务的应用或服务;
当所有服务实例均未进行升级时,若访问者在访问服务时需要发送寻址请求至所述服务目录,利用所述访问者发送寻址请求至所述服务目录,所述服务目录接收寻址请求,根据寻址请求返回寻址结果,其中,所述访问者为软件系统中需要访问服务的应用或服务。
在一些可能的实现方式中,所述预设访问控制方式包括:
根据所述访问者的IP地址确定返回新版本服务实例地址和/或旧版本服务实例地址,和/或,根据新版本服务实例的访问比例确定返回新版本服务实例地址和/或旧版本服务实例地址,其中,新版本服务实例地址表示升级后的服务实例地址,旧版本服务实例地址表示未升级的服务实例地址。
在一些可能的实现方式中,所述利用所述访问者发送寻址请求至所述服务目录包括:
利用所述访问者发送寻址请求至所述服务总线客户端的寻址信息校验模块,其中,寻址请求包括访问者名称、要访问的服务名和负载均衡方法信息;
利用所述寻址信息校验模块检查寻址请求是否符合第一预设规则,若是,将寻址请求发送至所述服务总线客户端的服务寻址代理模块,其中,所述第一预设规则包括:访问者名称为预设的命名格式;
利用所述服务寻址代理模块在寻址请求中添加本机IP地址信息,将包括访问者名称、要访问的服务名、负载均衡方法信息和本机IP地址的寻址请求发送至所述服务总线后台;
利用所述服务总线后台的第一身份校验模块接收寻址请求,检查寻址请求是否符合第二预设规则,若是,将寻址请求发送至所述服务目录,其中,所述第二预设规则包括:访问者名称在预先规划的范围内,本机IP地址在预先规划的范围内。
在一些可能的实现方式中,当按预设升级方式升级一个服务的至少一个服务实例时,所述根据寻址请求返回寻址结果包括:
若所述服务目录接收到的寻址请求中的负载均衡方法信息包含预设负载均衡方法,所述服务目录在所述访问控制模块的预设访问控制方式的限定下确定的若干个新版本服务实例地址和/或旧版本服务实例地址发送至负载均衡器,所述负载均衡器根据预设负载均衡方法选择出一个服务实例地址后返回给所述服务总线客户端;
若所述服务目录接收到的寻址请求中的负载均衡方法信息未包含负载均衡方法,所述服务目录将在所述访问控制模块的预设访问控制方式的限定下确定的若干个新版本服务实例地址和/或旧版本服务实例地址返回给所述服务总线客户端。
在一些可能的实现方式中,当所有服务实例均未进行升级时,所述根据寻址请求返回寻址结果包括:
若所述服务目录接收到的寻址请求中的负载均衡方法信息包含预设负载均衡方法,所述服务目录将所有服务实例地址发送至负载均衡器,所述负载均衡器根据预设负载均衡方法选择出一个服务实例地址后返回给所述服务总线客户端;
若所述服务目录接收到的寻址请求中的负载均衡方法信息未包含负载均衡方法,所述服务目录将在所有服务实例地址或服务端负载均衡器地址返回给所述服务总线客户端。
在一些可能的实现方式中,所述方法还包括:
利用服务总线客户端接收所述服务目录返回的寻址结果,根据寻址结果返回一个服务实例地址或服务端负载均衡器地址至所述访问者;其中,若所述服务总线客户端的所述服务寻址代理模块接收到的所述访问者发送的寻址请求中的负载均衡方法信息包含预设负载均衡方法,所述服务总线客户端返回一个服务实例至所述访问者,若负载均衡方法信息未包含负载均衡方法,所述服务总线客户端返回服务端负载均衡器地址至所述访问者。
在一些可能的实现方式中,所述方法还包括:
当所述服务目录中增加服务实例时,和/或,当所述服务目录中减少服务实例时;
利用所述访问控制模块发送消息至所述消息服务模块,其中,消息内容包括立即清除服务实例地址;
利用所述服务总线客户端接收所述消息服务模块上的消息,并根据消息内容执行指定动作。
在一些可能的实现方式中,当需要在所述服务目录中增加服务实例时,采用以下方式将服务实例写入所述服务目录:
通过服务总线接口发送注册信息至所述服务总线客户端,其中,注册信息包括:服务名和端口信息;
利用所述服务总线客户端的注册信息校验模块接收并检查注册信息是否符合第一预设规范,若是,将注册信息发送至所述服务总线客户端的注册代理模块,其中,所述第一预设规范包括:服务名为预设的命名格式;
利用所述注册代理模块在注册信息中添加本机IP地址信息,将包括服务名、端口信息和本机IP地址信息的注册信息发送至所述服务总线后台;
利用所述服务总线后台的第二身份校验模块接收注册信息,检查注册信息是否符合第二预设规范,若是,将注册信息发送至所述服务目录,其中,所述第二预设规范包括:服务名在预先规划的范围内,本机IP地址在预先规划的范围内;
将注册信息写入所述服务目录。
在一些可能的实现方式中,所述方法还包括:
对所述服务总线客户端的心跳状态进行实时监测,并将实时监测信息发送至所述服务目录;
根据实时监测信息对所述服务目录进行更新。
在一些可能的实现方式中,所述方法还包括:
创建地址服务模块,在所述地址服务模块中配置文件,在所述配置文件中写入服务总线后台地址;其中,所述配置文件的路径采用非Hosts文件;
创建地址配置服务模块,在所述地址配置服务模块上记录所有地址服务模块的服务器IP地址和对应端口,所述地址配置服务模块被配置为能够向所述地址服务模块发送修改配置通知,其中,所述修改配置通知包括:所述地址服务模块中配置文件的路径更换信息和/或配置文件中的服务总线后台地址更换信息;
对所述地址服务模块设置访问权限,以使所述地址服务模块只能够被所述地址服务模块所在服务器内的服务总线客户端和外部设置的所述地址配置服务模块访问,其中,所述地址服务模块被配置为能够根据修改配置通知更新配置文件。
本发明技术方案的主要优点如下:
本发明的支持灰度升级访问流量控制的服务总线设计方法通过创建与服务目录耦合的负载均衡器、访问控制模块和消息服务模块,利用与服务目录耦合的负载均衡器能够实现服务目录上的负载均衡,利用访问控制模块以预设访问控制方式对服务目录的寻址结果进行限定,利用消息服务模块解耦服务总线客户端与服务总线后台,能够实现非服务端负载均衡方式的灰度升级的访问流量控制,能够提高软件系统在机动环境下的适应性,减轻服务总线后台压力,提高系统的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例的支持灰度升级访问流量控制的服务总线的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明一实施例提供的技术方案。
参见图1,本发明一实施例提供了一种支持灰度升级访问流量控制的服务总线设计方法,该方法包括以下步骤:
创建与服务总线后台服务目录耦合的负载均衡器;
创建访问控制模块,其中,访问控制模块被配置为在有服务实例被升级时以预设访问控制方式对服务目录的寻址结果进行限定;
创建消息服务模块,其中,消息服务模块被配置为传输消息,服务总线客户端能够订阅消息服务模块上预设名称的消息,预设名称为访问者需要访问的预设服务名;
当按预设升级方式升级一个服务的至少一个服务实例时,通过访问控制模块发布消息到消息服务模块,通过服务总线客户端接收消息服务模块上的消息,并根据消息内容执行指定动作,在服务总线客户端消除服务实例地址缓存后,访问者在访问服务时,利用访问者发送寻址请求至服务目录,服务目录在访问控制模块的预设访问控制方式的限定下,根据寻址请求返回寻址结果,其中,消息对应的名称为进行升级的预设服务名,消息内容包括:立即清除服务实例地址,立即清除服务实例地址并每间隔预设时间清理一次服务实例地址,以及立即清除服务实例地址后不再缓存服务实例地址中的一种,访问者为软件系统中需要访问服务的应用或服务;
当所有服务实例均未进行升级时,若访问者在访问服务时需要发送寻址请求至服务目录,利用访问者发送寻址请求至服务目录,服务目录接收寻址请求,根据寻址请求返回寻址结果,其中,访问者为软件系统中需要访问服务的应用或服务。
本发明一实施例中,负载均衡器、访问控制模块和消息服务模块均创建在服务总线后台。
本发明一实施例提供的支持灰度升级访问流量控制的服务总线设计方法通过创建与服务目录耦合的负载均衡器、访问控制模块和消息服务模块,利用与服务目录耦合的负载均衡器能够实现服务目录上的负载均衡,利用访问控制模块以预设访问控制方式对服务目录的寻址结果进行限定,利用消息服务模块解耦服务总线客户端与服务总线后台,能够实现非服务端负载均衡方式的灰度升级的访问流量控制,同时也支持正常情况下的服务寻址,能够提高软件系统在机动环境下的适应性,减轻服务总线后台压力,提高系统的稳定性。
本发明一实施例中,当灰度升级或回滚完成后,访问控制模块发送消息至消息服务模块,消息内容包括缓存服务实例地址。
可选的,消息服务模块可以包括Kafka消息系统或RabbitMQ消息代理软件。
进一步地,本发明一实施例中,预设访问控制方式包括:
根据访问者的IP地址确定返回新版本服务实例地址和/或旧版本服务实例地址,和/或,根据新版本服务实例的访问比例确定返回新版本服务实例地址和/或旧版本服务实例地址,其中,新版本服务实例地址表示升级后的服务实例地址,旧版本服务实例地址表示未升级的服务实例地址。
通过采用上述的两种访问控制方式,能够限定一定范围内的IP地址上的访问者访问新版本服务实例,以及能够限定访问者访问新版本服务实例的比例。
进一步地,本发明一实施例中,利用访问者发送寻址请求至服务目录包括:
利用访问者发送寻址请求至服务总线客户端的寻址信息校验模块,其中,寻址请求包括访问者名称、要访问的服务名和负载均衡方法信息;
利用寻址信息校验模块检查寻址请求是否符合第一预设规则,若是,将寻址请求发送至服务总线客户端的服务寻址代理模块,其中,第一预设规则包括:访问者名称为预设的命名格式;
利用服务寻址代理模块在寻址请求中添加本机IP地址信息,将包括访问者名称、要访问的服务名、负载均衡方法信息和本机IP地址的寻址请求发送至服务总线后台;
利用服务总线后台的第一身份校验模块接收寻址请求,检查寻址请求是否符合第二预设规则,若是,将寻址请求发送至服务目录,其中,第二预设规则包括:访问者名称在预先规划的范围内,本机IP地址在预先规划的范围内。
由于在进行系统开发和部署时,客户端的每个应用和后台服务器的每个服务的名称,即应用名和服务名的命名形式和具体内容均是提前规划的,命名形式例如采用服务名采用三段式形式name.company.domain,具体内容例如一个服务具体命名为DiLiSerice.Tengxun.DiLiXinXi,采用的机器IP地址也是提前规划的。为此,在寻址请求的信息传输过程中,基于预设规则通过利用寻址信息校验模块和第一身份校验模块对寻址请求进行信息校验,可以提高软件系统在使用时的安全性。
进一步地,本发明一实施例中,当按预设升级方式升级一个服务的至少一个服务实例时,根据寻址请求返回寻址结果包括:
若服务目录接收到的寻址请求中的负载均衡方法信息包含预设负载均衡方法,服务目录在访问控制模块的预设访问控制方式的限定下确定的若干个新版本服务实例地址和/或旧版本服务实例地址发送至负载均衡器,负载均衡器根据预设负载均衡方法选择出一个服务实例地址后返回给服务总线客户端;
若服务目录接收到的寻址请求中的负载均衡方法信息未包含负载均衡方法,服务目录将在访问控制模块的预设访问控制方式的限定下确定的若干个新版本服务实例地址和/或旧版本服务实例地址返回给服务总线客户端。
其中,预设负载均衡方法可以为随机法、轮询法、最小连接法和IP哈希等方法中任一项,具体采用哪种负载均衡方法可以根据实际需求设定。
本发明一实施例中,通过创建与服务目录耦合的负载均衡器,能够直接在服务目录上实现多个服务实例的负载均衡。
进一步地,本发明一实施例中,当所有服务实例均未进行升级时,根据寻址请求返回寻址结果包括:
若服务目录接收到的寻址请求中的负载均衡方法信息包含预设负载均衡方法,服务目录将所有服务实例地址发送至负载均衡器,负载均衡器根据预设负载均衡方法选择出一个服务实例地址后返回给服务总线客户端;
若服务目录接收到的寻址请求中的负载均衡方法信息未包含负载均衡方法,服务目录将在所有服务实例地址或服务端负载均衡器地址返回给服务总线客户端。
进一步地,本发明一实施例中,该方法还包括:
利用服务总线客户端接收服务目录返回的寻址结果,根据寻址结果返回一个服务实例地址或服务端负载均衡器地址至访问者;其中,若服务总线客户端的服务寻址代理模块接收到的访问者发送的寻址请求中的负载均衡方法信息包含预设负载均衡方法,服务总线客户端返回一个服务实例至访问者,若负载均衡方法信息未包含负载均衡方法,服务总线客户端返回服务端负载均衡器地址至访问者。
其中,服务总线客户端利用内部设置的服务寻址代理模型接收寻址结果、发送寻址请求、以及接收消息服务模块的消息。
具体地,当应用或服务访问带有服务端负载均衡器的服务时候,应用或服务可以不用指定负载均衡方法,即应用或服务发送到服务总线客户端的寻址请求中的负载均衡方法信息未包含具体设定的负载均衡方法,此时,服务总线客户端发送至服务目录的寻址请求中的负载均衡方法信息也没有包含具体设定的负载均衡方法,服务目录根据寻址请求返回服务端负载均衡器地址至服务总线客户端,服务总线客户端将接收到的服务端负载均衡器地址返回至发起寻址请求的应用或服务,应用或服务发起对服务端负载均衡器的访问,服务端负载均衡器根据预先设置的负载均衡方法选择其中一个服务实例处理访问请求并返回结果至发起寻址请求的应用或服务。
当应用或服务访问的服务的实例地址均注册在服务目录上时,应用或服务发送到服务总线客户端的寻址请求中的负载均衡方法信息需要包含具体设定的负载均衡方法,服务总线客户端根据实际配置情况确定采用客户端负载均衡器或与服务目录耦合的负载均衡器进行负载均衡;当确定采用客户端负载均衡器进行负载均衡时,服务总线客户端发送至服务目录的寻址请求中的负载均衡方法信息没有包含具体设定的负载均衡方法,此时,服务目录返回所有服务实例地址至服务总线客户端,服务总线客户端根据接收到的寻址请求中包含的负载均衡方法,利用客户端负载均衡器对接收到的所有服务实例地址进行负载均衡,以选择出一个服务实例地址返回至发起寻址请求的应用或服务;当确定采用与服务目录耦合的负载均衡器进行负载均衡时,服务总线客户端发送至服务目录的寻址请求中的负载均衡方法信息包含具体设定的负载均衡方法,此时,服务目录根据接收到的寻址请求中包含的负载均衡方法,利用负载均衡器选择出一个服务实例地址返回至服务总线客户端,服务总线客户端将接收到的服务实例地址返回至发起寻址请求的应用或服务。
考虑到若采用客户端负载均衡器对寻址结果进行负载均衡,则每个应用或服务的服务总线客户端均需要加载客户端负载均衡器,不利于提高服务化软件系统在机动环境下的适用性;为此,本发明一实施例中,当服务总线客户端接收到的寻址请求中的负载均衡方法信息包含具体的预设负载均衡方法,服务总线客户端发送至服务目录的寻址请求中的负载均衡方法信息也包含对应的预设负载均衡方法。如此,无需在服务总线客户端中加载客户端负载均衡器,从而能够实现瘦客户端的效果,减小客户端规模,降低支持成本,提高系统对机动环境的适用性。
进一步地,为了保证当服务总线后台的服务目录中记录的服务实例发生变化时,能够及时告知服务总线客户端,保证软件系统的稳定性;本发明一实施例中,该方法还包括:
当服务目录中增加服务实例时,和/或,当服务目录中减少服务实例时;
利用访问控制模块发送消息至消息服务模块,其中,消息内容包括立即清除服务实例地址;
利用服务总线客户端接收消息服务模块上的消息,并根据消息内容执行指定动作。
如此,能够实现服务总线客户端缓存的服务实例的实时更新,避免访问者发起的访问中未包含新增加的服务实例或者包含出现异常的服务实例,能够提高软件系统的稳定性和可靠性。
可选的,本发明一实施例中,当需要在服务目录中增加服务实例时,采用以下方式将服务实例写入服务目录:
通过服务总线接口发送注册信息至服务总线客户端,其中,注册信息包括:服务名和端口信息;
利用服务总线客户端的注册信息校验模块接收并检查注册信息是否符合第一预设规范,若是,将注册信息发送至服务总线客户端的注册代理模块,其中,第一预设规范包括:服务名为预设的命名格式;
利用注册代理模块在注册信息中添加本机IP地址信息,将包括服务名、端口信息和本机IP地址信息的注册信息发送至服务总线后台;
利用服务总线后台的第二身份校验模块接收注册信息,检查注册信息是否符合第二预设规范,若是,将注册信息发送至服务目录,其中,第二预设规范包括:服务名在预先规划的范围内,本机IP地址在预先规划的范围内;
将注册信息写入服务目录。
由于在进行系统开发和部署时,每个应用和每个服务的名称,即应用名和服务名的命名形式和具体内容均是提前规划的,命名形式例如采用服务名采用三段式形式name.company.domain,具体内容例如一个服务具体命名为DiLiSerice.Tengxun.DiLiXinXi,采用的机器IP地址也是提前规划的。为此,在服务的注册信息的信息传输过程中,基于预设规范通过利用注册信息校验模块和第二身份校验模块对注册信息进行信息校验,可以提高系统在使用时的安全性。
进一步地,本发明一实施例中,在服务寻址代理模块将寻址请求发送至服务总线后台和注册代理模块将注册信息发送至服务总线后台时,均需要先获取服务总线后台地址。本发明一实施例中,为了提高系统的安全性,该方法还包括:
创建地址服务模块,在地址服务模块中配置文件,在配置文件中写入服务总线后台地址,其中,配置文件的路径采用非Hosts文件;
创建地址配置服务模块,在地址配置服务模块上记录所有地址服务模块的服务器IP地址和对应端口,地址配置服务模块被配置为能够向地址服务模块发送修改配置通知,其中,修改配置通知包括:地址服务模块中配置文件的路径更换信息和/或配置文件中的服务总线后台地址更换信息;
对地址服务模块设置访问权限,以使地址服务模块只能够被地址服务模块所在服务器内的服务总线客户端和外部设置的地址配置服务模块访问,其中,地址服务模块被配置为能够根据修改配置通知更新配置文件。
可选的,为了方便服务总线客户端的服务寻址代理模块和注册代理模块获取服务总线后台地址,服务总线客户端中创建有寻址模块,寻址模块被配置为能够访问地址服务模块获取服务总线后台地址,服务寻址代理模块和注册代理模块被配置为能够通过寻址模块获取服务总线后台地址。
进一步地,本发明一实施例中,该方法还包括:
对服务总线客户端的心跳状态进行实时监测,并将实时监测信息发送至服务目录;
根据实时监测信息对服务目录进行更新。
如此设置,能够在服务实例注销或者出现故障等异常状态时,及时通知服务目录删除对应的服务实例。
具体地,对服务总线客户端的心跳状态进行实时监测,并将实时监测结果发送至服务目录,包括:
创建心跳代理模块,心跳代理模块被配置为在服务总线客户端处于存活状态时,以预设时间间隔向服务总线后台发送心跳信息;
创建服务异常管理模块,服务异常管理模块被配置为在预设时间间隔未接收到心跳信息时,向服务目录发送服务总线客户端异常的信息。
其中,心跳代理模块可以创建在服务总线客户端,服务异常管理模块可以创建在服务总线后台。
具体地,根据实时监测信息对服务目录进行更新,包括:
通过服务目录接收服务总线客户端异常的信息,删除对应的服务实例。
可选的,心跳代理模块支持探针模式,即服务开发者自定义服务存活状态检测模块,服务存活状态检测模块定时发送存活信息到心跳代理模块,心跳信息不由心跳代理模块产生而是由服务内部自定义产生,心跳代理模块起到传递心跳信息的作用。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,本文中“前”、“后”、“左”、“右”、“上”、“下”均以附图中表示的放置状态为参照。
最后应说明的是:以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种支持灰度升级访问流量控制的服务总线设计方法,其特征在于,所述方法包括:
创建与服务总线后台服务目录耦合的负载均衡器;
创建访问控制模块,其中,所述访问控制模块被配置为在有服务实例被升级时以预设访问控制方式对所述服务目录的寻址结果进行限定;
创建消息服务模块,其中,所述消息服务模块被配置为传输消息,服务总线客户端能够订阅所述消息服务模块上预设名称的消息,预设名称为访问者需要访问的预设服务名;
当按预设升级方式升级一个服务的至少一个服务实例时,通过所述访问控制模块发布消息到所述消息服务模块,通过所述服务总线客户端接收所述消息服务模块上的消息,并根据消息内容执行指定动作,在所述服务总线客户端消除服务实例地址缓存后,访问者在访问服务时,利用所述访问者发送寻址请求至所述服务目录,所述服务目录在所述访问控制模块的预设访问控制方式的限定下,根据寻址请求返回寻址结果,其中,所述访问者为软件系统中需要访问服务的应用或服务,所述消息对应的名称为进行升级的预设服务名,所述消息内容包括立即清除服务实例地址、立即清除服务实例地址并每间隔预设时间清理一次服务实例地址、以及立即清除服务实例地址后不再缓存服务实例地址中的一种;
当所有服务实例均未进行升级时,若访问者在访问服务时需要发送寻址请求至所述服务目录,利用所述访问者发送寻址请求至所述服务目录,所述服务目录接收寻址请求,根据寻址请求返回寻址结果,
其中,当按预设升级方式升级一个服务的至少一个服务实例时,所述根据寻址请求返回寻址结果包括:若所述服务目录接收到的寻址请求中的负载均衡方法信息包含预设负载均衡方法,所述服务目录将在所述访问控制模块的预设访问控制方式的限定下确定的若干个新版本服务实例地址和/或旧版本服务实例地址发送至负载均衡器,所述负载均衡器根据预设负载均衡方法选择出一个服务实例地址后返回给所述服务总线客户端;若所述服务目录接收到的寻址请求中的负载均衡方法信息未包含负载均衡方法,所述服务目录将在所述访问控制模块的预设访问控制方式的限定下确定的若干个新版本服务实例地址和/或旧版本服务实例地址返回给所述服务总线客户端;
其中,当所有服务实例均未进行升级时,所述根据寻址请求返回寻址结果包括:若所述服务目录接收到的寻址请求中的负载均衡方法信息包含预设负载均衡方法,所述服务目录将所有服务实例地址发送至负载均衡器,所述负载均衡器根据预设负载均衡方法选择出一个服务实例地址后返回给所述服务总线客户端;若所述服务目录接收到的寻址请求中的负载均衡方法信息未包含负载均衡方法,所述服务目录将在所有服务实例地址或服务端负载均衡器地址返回给所述服务总线客户端。
2.根据权利要求1所述的支持灰度升级访问流量控制的服务总线设计方法,其特征在于,所述预设访问控制方式包括:根据所述访问者的IP地址确定返回新版本服务实例地址和/或旧版本服务实例地址,和/或,根据新版本服务实例的访问比例确定返回新版本服务实例地址和/或旧版本服务实例地址,其中,新版本服务实例地址表示升级后的服务实例地址,旧版本服务实例地址表示未升级的服务实例地址。
3.根据权利要求1所述的支持灰度升级访问流量控制的服务总线设计方法,其特征在于,所述利用所述访问者发送寻址请求至所述服务目录包括:
利用所述访问者发送寻址请求至所述服务总线客户端的寻址信息校验模块,其中,寻址请求包括访问者名称、要访问的服务名和负载均衡方法信息;
利用所述寻址信息校验模块检查寻址请求是否符合第一预设规则,若是,将寻址请求发送至所述服务总线客户端的服务寻址代理模块,其中,所述第一预设规则包括:访问者名称为预设的命名格式;
利用所述服务寻址代理模块在寻址请求中添加本机IP地址信息,将包括访问者名称、要访问的服务名、负载均衡方法信息和本机IP地址的寻址请求发送至所述服务总线后台;
利用所述服务总线后台的第一身份校验模块接收寻址请求,检查寻址请求是否符合第二预设规则,若是,将寻址请求发送至所述服务目录,其中,所述第二预设规则包括:访问者名称在预先规划的范围内,本机IP地址在预先规划的范围内。
4.根据权利要求1所述的支持灰度升级访问流量控制的服务总线设计方法,其特征在于,所述方法还包括:利用服务总线客户端接收所述服务目录返回的寻址结果,根据寻址结果返回一个服务实例地址或服务端负载均衡器地址至所述访问者,其中,若所述服务总线客户端的所述服务寻址代理模块接收到的所述访问者发送的寻址请求中的负载均衡方法信息包含预设负载均衡方法,所述服务总线客户端返回一个服务实例至所述访问者,若负载均衡方法信息未包含负载均衡方法,所述服务总线客户端返回服务端负载均衡器地址至所述访问者。
5.根据权利要求1至4中任一项所述的支持灰度升级访问流量控制的服务总线设计方法,其特征在于,所述方法还包括:
对所述服务总线客户端的心跳状态进行实时监测,并将实时监测信息发送至所述服务目录;
根据实时监测信息对所述服务目录进行更新。
6.根据权利要求1至4中任一项所述的支持灰度升级访问流量控制的服务总线设计方法,其特征在于,所述方法还包括:
创建地址服务模块,在所述地址服务模块中配置文件,在所述配置文件中写入服务总线后台地址,其中,所述配置文件的路径采用非Hosts文件;
创建地址配置服务模块,在所述地址配置服务模块上记录所有地址服务模块的服务器IP地址和对应端口,所述地址配置服务模块被配置为能够向所述地址服务模块发送修改配置通知,其中,所述修改配置通知包括:所述地址服务模块中配置文件的路径更换信息和/或配置文件中的服务总线后台地址更换信息;
对所述地址服务模块设置访问权限,以使所述地址服务模块只能够被所述地址服务模块所在服务器内的服务总线客户端和外部设置的所述地址配置服务模块访问,其中,所述地址服务模块被配置为能够根据修改配置通知更新配置文件。
7.根据权利要求1至4中任一项所述的支持灰度升级访问流量控制的服务总线设计方法,其特征在于,所述方法还包括:
当所述服务目录中增加服务实例时,和/或,当所述服务目录中减少服务实例时:
利用所述访问控制模块发送消息至所述消息服务模块,其中,消息内容包括立即清除服务实例地址;
利用所述服务总线客户端接收所述消息服务模块上的消息,并根据消息内容执行指定动作。
8.根据权利要求7所述的支持灰度升级访问流量控制的服务总线设计方法,其特征在于,当需要在所述服务目录中增加服务实例时,采用以下方式将服务实例写入所述服务目录:
通过服务总线接口发送注册信息至所述服务总线客户端,其中,注册信息包括:服务名和端口信息;
利用所述服务总线客户端的注册信息校验模块接收并检查注册信息是否符合第一预设规范,若是,将注册信息发送至所述服务总线客户端的注册代理模块,其中,所述第一预设规范包括:服务名为预设的命名格式;
利用所述注册代理模块在注册信息中添加本机IP地址信息,将包括服务名、端口信息和本机IP地址信息的注册信息发送至所述服务总线后台;
利用所述服务总线后台的第二身份校验模块接收注册信息,检查注册信息是否符合第二预设规范,若是,将注册信息发送至所述服务目录,其中,所述第二预设规范包括:服务名在预先规划的范围内,本机IP地址在预先规划的范围内;
将注册信息写入所述服务目录。
9.根据权利要求7所述的支持灰度升级访问流量控制的服务总线设计方法,其特征在于,所述方法还包括:
对所述服务总线客户端的心跳状态进行实时监测,并将实时监测信息发送至所述服务目录;
根据实时监测信息对所述服务目录进行更新。
10.根据权利要求7所述的支持灰度升级访问流量控制的服务总线设计方法,其特征在于,所述方法还包括:
创建地址服务模块,在所述地址服务模块中配置文件,在所述配置文件中写入服务总线后台地址;其中,所述配置文件的路径采用非Hosts文件;
创建地址配置服务模块,在所述地址配置服务模块上记录所有地址服务模块的服务器IP地址和对应端口,所述地址配置服务模块被配置为能够向所述地址服务模块发送修改配置通知,其中,所述修改配置通知包括:所述地址服务模块中配置文件的路径更换信息和/或配置文件中的服务总线后台地址更换信息;
对所述地址服务模块设置访问权限,以使所述地址服务模块只能够被所述地址服务模块所在服务器内的服务总线客户端和外部设置的所述地址配置服务模块访问,其中,所述地址服务模块被配置为能够根据修改配置通知更新配置文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111029891.XA CN113949708B (zh) | 2021-09-03 | 2021-09-03 | 一种支持灰度升级访问流量控制的服务总线设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111029891.XA CN113949708B (zh) | 2021-09-03 | 2021-09-03 | 一种支持灰度升级访问流量控制的服务总线设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113949708A CN113949708A (zh) | 2022-01-18 |
CN113949708B true CN113949708B (zh) | 2023-04-25 |
Family
ID=79327849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111029891.XA Active CN113949708B (zh) | 2021-09-03 | 2021-09-03 | 一种支持灰度升级访问流量控制的服务总线设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113949708B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194075B (zh) * | 2023-09-11 | 2024-05-03 | 中国人民解放军军事科学院战争研究院 | 一种适配多模态微应用的消息隔离通信方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3581589B2 (ja) * | 1999-01-11 | 2004-10-27 | 株式会社日立製作所 | 通信ネットワークシステムおよび通信ネットワークシステムにおけるサービス管理方法 |
CN101207542A (zh) * | 2007-12-12 | 2008-06-25 | 江苏省电力公司 | Soa架构下多级服务总线服务调用的快速寻址方法 |
CN112087325B (zh) * | 2020-08-21 | 2021-07-20 | 烽火通信科技股份有限公司 | 灰度发布方法、装置、设备及可读存储介质 |
CN112261172B (zh) * | 2020-10-19 | 2023-10-17 | 腾讯云计算(北京)有限责任公司 | 服务寻址访问方法、装置、系统、设备及介质 |
-
2021
- 2021-09-03 CN CN202111029891.XA patent/CN113949708B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113949708A (zh) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7003767B2 (en) | System and method for remotely updating software applications | |
CN101442566B (zh) | 实现动态域名更新的方法和设备 | |
US8522086B1 (en) | Method and apparatus for providing relocation notification | |
US9485134B2 (en) | Managing configurations of system management agents in a distributed environment | |
US8812579B2 (en) | Apparatus for transferring data via a proxy server and an associated method and computer program product | |
US8533293B1 (en) | Client side cache management | |
CN101325561B (zh) | 一种处理电子邮件的方法、装置及系统 | |
US9588854B2 (en) | Systems and methods for a secondary website with mirrored content for automatic failover | |
JP2010508581A (ja) | ウェブベースアプリケーションのオフライン実行 | |
KR101497167B1 (ko) | 분산 운영 시스템에서의 외부 하드웨어 기기의 관리 | |
CN111327668B (zh) | 网络管理方法、装置、设备和存储介质 | |
CN106933548A (zh) | 全局信息获取、处理及更新、方法、装置和系统 | |
US20040034687A1 (en) | Extensible instant messaging service | |
CN110213331B (zh) | 业务请求的处理方法、终端设备、电子设备及存储介质 | |
CN101360127A (zh) | 文件更新方法及传输系统 | |
CN104717314A (zh) | 一种ip管理方法及系统、客户端、服务器 | |
CN110716734B (zh) | 一种软件升级的方法、装置、电子设备及介质 | |
CN113949708B (zh) | 一种支持灰度升级访问流量控制的服务总线设计方法 | |
US20150006622A1 (en) | Web contents transmission method and apparatus | |
CN112839076A (zh) | 数据存储、读取方法、网关、电子设备及存储介质 | |
CN112583760B (zh) | 一种对象存储的访问方法、装置、设备和计算机存储介质 | |
JP3770801B2 (ja) | 代理サーバ、サーバおよびそれらを実現するプログラムを記録した記録媒体 | |
US20060059251A1 (en) | Method and system for request management processing | |
CN115297085B (zh) | 一种域名解析的更新方法、装置、电子设备及存储介质 | |
KR20210044281A (ko) | 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을 보장하기 위한 방법 및 장치 |
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 |