CN107948284B - 一种基于微服务架构的服务下线方法、设备和系统 - Google Patents
一种基于微服务架构的服务下线方法、设备和系统 Download PDFInfo
- Publication number
- CN107948284B CN107948284B CN201711192759.4A CN201711192759A CN107948284B CN 107948284 B CN107948284 B CN 107948284B CN 201711192759 A CN201711192759 A CN 201711192759A CN 107948284 B CN107948284 B CN 107948284B
- Authority
- CN
- China
- Prior art keywords
- service
- registration
- service node
- node
- list
- 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 92
- 238000012790 confirmation Methods 0.000 claims description 46
- 238000012545 processing Methods 0.000 claims description 39
- 238000004891 communication Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供一种基于微服务架构的服务下线方法、设备和系统,所述方法包括:确定第一服务节点,向所述第一服务节点发送下线指令;确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,确认网关设备的缓存列表是否包含第一服务节点的地址信息;若确认网关设备的缓存列表不包含第一服务节点的地址信息,在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。本申请实施例可以有效提高应用系统更新效率和性能,有效避免了外部数据请求丢失,减少了外部数据请求调用失败的发生。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种基于微服务架构的服务下线方法、设备和系统。
背景技术
现有技术中,应用系统一般采用如图1所示的系统架构,一个负载均衡服务器与两个服务器连接,两个服务器对应同一应用A,实现相同的服务功能。当接收到外部请求时,由负载均衡服务器将外部请求平均分配到两个服务器上处理。这种架构可以在一定程度上满足负载均衡的需求,但也存在不能够及时对系统进行更新发布的缺陷。这是因为同一应用的所有功能均集中在一起,一旦更新需要较长的启动时间。此外,现有技术应用系统的更新发布往往放在深夜进行,不能满足高可用要求。若在紧急情况下例如系统出现异常需要对应用系统进行更新时,往往会丢失正在处理的数据请求,导致服务调用失败。
发明内容
本申请实施例提供了一种基于微服务架构的服务下线方法、设备和系统,旨在解决现有技术应用系统更新效率低、容易出现数据请求丢失的技术问题。
为此,本申请实施例提供如下技术方案:
本申请实施例的第一方面公开了一种基于微服务架构的服务下线方法,应用于服务控制设备,所述服务控制设备与服务注册设备、网关设备以及各服务节点通信连接,所述方法包括:服务控制设备确定第一服务节点,向所述第一服务节点发送下线指令;其中,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;服务控制设备确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;其中,所述服务注册设备用于在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息;若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,服务控制设备确认网关设备的缓存列表是否包含第一服务节点的地址信息;其中,所述网关设备用于根据所述注册列表的信息更新所述缓存列表的信息;若确认网关设备的缓存列表不包含第一服务节点的地址信息,服务控制设备在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。
本申请实施例的第二方面,公开了一种基于微服务架构的服务下线方法,应用于服务注册设备,所述服务注册设备与服务控制设备、网关设备以及各服务节点通信连接,所述方法包括:服务注册设备接收第一服务节点发送的下线请求,从注册列表中删除第一服务节点的地址信息;服务注册设备向网关设备发送更新的注册列表,用于指示网关设备根据所述更新的注册列表更新所述网关设备保存的缓存列表;服务注册设备向服务控制设备发送消息,用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
本申请实施例的第三方面,公开了一种基于微服务架构的服务下线方法,应用于网关设备,所述网关设备与服务控制设备、服务注册设备以及各服务节点通信连接,所述方法包括:网关设备接收服务注册设备发送的更新的注册列表,根据所述更新的注册列表更新所述网关设备保存的缓存列表;网关设备向服务控制设备发送消息,用于指示所述网关设备的缓存列表是否包含第一服务节点的地址信息。
本申请实施例的第四方面,公开了一种服务控制设备,包括:确定单元,用于确定第一服务节点,向所述第一服务节点发送下线指令;其中,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;第一确认单元,用于确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;其中,所述服务注册设备用于在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息;第二确认单元,用于若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,确认网关设备的缓存列表是否包含第一服务节点的地址信息;其中,所述网关设备用于根据所述注册列表的信息更新所述缓存列表的信息;关闭单元,用于若确认网关设备的缓存列表不包含第一服务节点的地址信息,服务控制设备在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。
本申请实施例的第五方面,公开了一种服务控制设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行如第一方面所述的基于微服务架构的服务下线方法。
本申请实施例的第六方面,公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如第一方面所述的基于微服务架构的服务下线方法。
本申请实施例的第七方面,公开了一种服务注册设备,包括:删除单元,用于接收第一服务节点发送的下线请求,从注册列表中删除第一服务节点的地址信息;第一发送单元,用于向网关设备发送更新的注册列表,用于指示网关设备根据所述更新的注册列表更新所述网关设备保存的缓存列表;第二发送单元,用于向服务控制设备发送消息,用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
本申请实施例的第八方面,公开了一种服务注册设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行如第二方面所述的基于微服务架构的服务下线方法。
本申请实施例的第九方面,公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如第二方面所述的基于微服务架构的服务下线方法。
本申请实施例的第十方面,公开了一种网关设备,包括:接收单元,用于接收服务注册设备发送的更新的注册列表,根据所述更新的注册列表更新所述网关设备保存的缓存列表;发送单元,用于向服务控制设备发送消息,用于指示所述网关设备的缓存列表是否包含第一服务节点的地址信息。
本申请实施例的第十一方面,公开了一种网关设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行如第三方面所述的基于微服务架构的服务下线方法。
本申请实施例的第十二方面,公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如第三方面所述的基于微服务架构的服务下线方法。
本申请实施例至少一个方面能够达到的有益效果是:本申请可以由服务控制设备从第一应用程序包含的多个服务中选择一个服务对应的一个或多个服务节点作为第一服务节点,向其发生下线指令。所述服务控制设备在确认服务注册设备以及网关设备中均不包含所述第一服务节点的地址信息且所述第一服务节点的数据请求处理完毕后,才发送关闭第一服务节点的指令。由于本申请实施例可以针对应用程序包含的多个服务中的一个服务的子节点执行下线处理,而不必下线整个应用程序对应的服务,使得应用程序在服务节点更新时,仍能够对外提供服务,且调用应用程序的外部客户端对此无感知,实现了应用程序服务的灰度发布,提高了应用程序的处理性能和更新效率,提升了用户体验。此外,本申请实施例在确认注册设备及网关设备均不包含第一服务节点的注册信息时,才关闭第一服务节点,使得新的外部数据请求不会由网关分配到第一服务节点上,避免了外部数据请求的调用失败。另外,本申请实施例在确认第一服务节点的数据请求处理完毕后,才关闭第一服务节点,不会丢失第一服务节点正在处理的数据请求,避免了外部数据请求的调用失败,提升了用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的应用系统架构图;
图2为本申请实施例提供的基于微服务架构的服务下线系统示意图;
图3为本申请实施例提供的应用场景示意图;
图4为本申请一实施例提供的服务下线方法流程图;
图5为本申请另一实施例提供的服务下线方法流程图;
图6为本申请再一实施例提供的服务下线方法流程图;
图7为本申请又一实施例提供的服务下线方法信令交互图;
图8为本申请一实施例提供的服务控制设备示意图;
图9为本申请另一实施例提供的服务控制设备示意图;
图10为本申请一实施例提供的服务注册设备示意图;
图11为本申请另一实施提供的服务注册设备示意图;
图12为本申请一实施例提供的网关设备示意图;
图13为本申请另一实施例提供的网关设备示意图。
具体实施方式
本申请实施例提供了一种基于微服务架构的服务下线方法、设备和系统,有效提高应用系统更新效率和性能,有效避免了外部数据请求丢失,减少了外部数据请求调用失败。
参见图2,为本申请实施例提供的基于微服务架构的服务下线系统示意图。所述服务下线系统包括服务控制设备800、服务注册设备1000、网关设备Gateway1200、各服务节点101、102、201、202、301、302等。
需要说明的是,在本申请实施例提供的微服务架构中,一般将整个应用程序拆分成多个子服务,即微服务。不同的微服务相独立、互不干扰,可以独立编译、升级部署,并通过接口API对外暴露服务,作为一个整体向外部提供服务。举例说明,可以将第一应用程序拆分成多个子服务,例如第一服务、第二服务、第三服务……每个子服务可以部署在不同的服务节点上。如图2所示,服务节点101、102对应第一服务,服务节点201、202对应第二服务,服务节点301、302对应第三服务……当然,还可以包括更多的服务节点,例如每个服务包含3个以上服务节点,或者,应用程序可以被拆分成更多子服务。由于将应用程序拆分成多个子服务,因此在对应用程序升级更新时,可以仅针对其中一个子服务对应的一个或多个服务节点进行下线处理,其他服务节点仍对外提供服务,不影响外部客户端对服务的调用。本申请实施例不需要下线整个应用程序的服务,而是可以仅下线其中一个子服务的服务节点,不影响外部客户端的调用需求,且实现了应用程序的升级更新。
具体地,图2所示的服务控制设备,其与服务注册设备、网关设备、各服务节点均能实现通信连接。所述服务控制设备用于确定第一服务节点,向所述第一服务节点发送下线指令;其中,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务。
所述第一服务节点用于接收服务控制设备发送的下线指令,向服务注册设备发送下线请求。
所述服务注册设备用于在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息。
所述网关设备用于根据所述注册列表的信息更新所述缓存列表的信息。
所述服务控制设备还用于确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,服务控制设备确认网关设备的缓存列表是否包含第一服务节点的地址信息;若确认网关设备的缓存列表不包含第一服务节点的地址信息,服务控制设备在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。
参见图3,为本申请实施例的示例性应用场景。当然,本申请实施例还可以应用到其他场景中,在此不进行限制。在图3中,负载均衡服务器接收到客户端发送的外部数据请求后,可以根据负载均衡策略选择一个网关设备处理该外部数据请求。被选中的网关设备接收该外部数据请求,根据存储的缓存列表中的各服务节点的地址信息,选取服务节点处理该外部数据请求。需要说明的是,网关设备保存的缓存列表与服务注册设备保存的注册列表保持同步更新。由于在本申请中,服务控制设备在确认注册设备及网关设备均不包含第一服务节点的注册信息时,才关闭第一服务节点,使得新的外部数据请求不会由网关分配到第一服务节点上,避免了外部数据请求的调用失败。另外,本申请实施例在确认第一服务节点的数据请求处理完毕后,才关闭第一服务节点,不会丢失第一服务节点正在处理的数据请求,避免了外部数据请求的调用失败,提升了用户体验。
需要注意的是,上述应用场景仅是为了便于理解本申请而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
下面将结合附图4至附图7对本申请示例性实施例示出的服务下线方法进行介绍。
参见图4,为本申请一实施例提供的服务下线方法流程图。图4所示的方法应用于服务控制设备,所述服务控制设备与服务注册设备、网关设备以及各服务节点通信连接,所述方法可以包括:
S401,服务控制设备确定第一服务节点,向所述第一服务节点发送下线指令。
在本申请实施例中,每个应用程序可以包括多个服务,每个服务可以对应一个或多个服务节点。例如,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务。
所述服务控制设备可以控制一个或多个服务节点下线、上线,并可以保证不会有外部数据请求发布到需要停机发布的微服务节点上,并且可以确保在微服务节点当前处理的数据请求处理完毕后,才关闭该微服务节点,实现了外部客户端无感知的服务灰度发布。
具体实现时,服务控制设备可以在需要下线的服务对应的多个服务节点中选取一个或多个服务节点,发送下线请求。其中,选取的第一服务节点的数量小于第一服务对应的服务节点的数量。也就是说,一般地,需要保证至少一个服务节点可用,可以对外提供服务,服务注册设备和网关设备的列表中至少包括需要下线的服务例如第一服务的至少一个服务节点。
在一些实施方式中,所述服务控制设备确定第一服务节点包括:当第一服务对应多个服务节点时,从多个服务节点中选取资源占用率低的一个或多个服务节点作为第一服务节点。举例说明,当确定需要停机发布的是第一应用程序的第一服务时,可以获取第一服务的各服务节点的资源占用率,将资源占用率小于第二设定阈值的服务节点作为第一服务节点。或者,按照资源占用率由低到高排序,将排在前N位的服务节点确定为第一服务节点。N大于等于1,小于第一服务节点包含的服务节点的总数M。
在一些实施方式中,所述服务控制设备确定第一服务节点包括:当第一服务对应多个服务节点时,从多个服务节点中随机选取一个或多个服务节点作为第一服务节点。在这一实现方式中,可以不考虑各服务节点的状态,随机选取一个或多个节点作为第一服务节点。
服务控制设备在确定第一服务节点后,可以向第一服务节点发送下线指令。第一服务节点在接收到下线指令后,向服务注册设备发送下线请求,用于请求下线。一般地,服务注册设备在接收到第一服务节点发送的在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息。一般地,服务注册设备的注册列表包含了可用服务的标识以及该可用服务包含的服务节点的地址信息。
S402,服务控制设备确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息。
在一些实施方式中,服务控制设备可以向服务注册设备发送列表请求,服务注册设备响应该列表请求,向服务控制设备发送注册列表。服务控制设备接收服务注册设备发送的注册列表,将所述第一服务节点的地址信息与所述注册列表包含的各服务节点的地址信息匹配;若不存在匹配结果,确定服务注册设备从注册列表中删除所述第一服务节点的地址信息。
在一些实施方式中,服务控制设备可以向服务注册设备发送包含第一服务节点标识的确认请求,用于确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息。所述第一服务节点标识可以是第一服务节点的地址信息或者其他可以标识第一服务节点的信息。服务注册设备可以根据第一服务节点的标识确认注册列表中是否存在第一服务节点的信息,并向服务控制设备发送确认消息用于指示服务注册设备从注册列表中删除所述第一服务节点的地址信息。服务控制设备用于接收服务注册设备发送的确认信息,根据所述确认信息确定服务注册设备从注册列表中删除所述第一服务节点的地址信息。
当然,在一些实施方式中,服务注册设备在接收到第一服务节点发送的下线请求并从注册列表中删除所述第一服务节点的地址信息后,可以主动向服务控制设备发送消息,用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。所述消息可以是包含注册列表的消息,服务控制设备根据所述注册列表以及所述第一服务节点的地址信息判断服务注册设备是否从注册列表中删除所述第一服务节点的地址信息。所述消息也可以是包含第一服务节点标识的确认消息,服务控制设备根据所述消息确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息。
其中,第一服务节点的地址信息可以包括但不限于第一服务节点的IP地址、MAC地址或者端口号,在此不进行限定。
S403,若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,服务控制设备确认网关设备的缓存列表是否包含第一服务节点的地址信息。
需要说明的是,服务注册设备在接收到第一服务节点发送的下线请求并从注册列表中删除所述第一服务节点的地址信息后,可以主动或者响应于网关设备的请求,向网关设备发送更新的注册列表,由网关设备根据所述注册列表的信息更新所述网关设备保存的缓存列表的信息。网关设备保存的缓存列表与服务注册设备的注册列表保持同步更新。在某些情况下,同步过程可能存在一定的延迟,使得网关设备保存的缓存列表与服务注册设备保存的注册列表不一致。而网关设备是根据缓存列表确定可用服务节点的地址,并将外部数据请求分配给可用服务节点的。因此,需要确定网关设备中不再保存需要下线的第一服务节点的地址信息,也就是说,需要确定第一服务节点不在可用服务列表中,以避免有新的外部请求发送到需要下线的第一服务节点上。
在一些实施方式中,在确定网关设备的缓存列表是否包含第一服务节点的地址信息时,服务控制设备可以向网关设备发送请求;服务控制设备接收网关设备发送的缓存列表,将所述第一服务节点的地址信息与所述缓存列表包含的各服务节点的地址信息进行匹配;若不存在匹配结果,确定所述缓存列表不包含第一服务节点的地址信息。
在一些实施方式中,在确定网关设备的缓存列表是否包含第一服务节点的地址信息时,服务控制设备可以向网关设备发送包含第一服务节点标识的确认请求,用于确认网关设备的缓存列表是否包含第一服务节点的地址信息。所述第一服务节点标识可以是第一服务节点的地址信息或者其他可以标识第一服务节点的信息。网关设备可以根据第一服务节点的标识确认缓存列表中是否存在第一服务节点的信息,并向服务控制设备发送确认消息用于指示网关设备的缓存列表不包含所述第一服务节点的地址信息。服务控制设备用于接收网关设备发送的确认信息,根据所述确认信息确定网关设备的缓存列表不包含所述第一服务节点的地址信息。
当然,在一些实施方式中,所述网关设备更新缓存列表中的服务节点的地址信息后,可以主动向服务控制设备发送消息,用于指示所述服务控制设备已更新缓存列表,所述缓存列表不包含所述第一服务节点的地址信息。所述消息可以是包含缓存列表的消息,服务控制设备根据所述注册列表以及所述第一服务节点的地址信息判断网关设备的缓存列表是否包含所述第一服务节点的地址信息。所述消息也可以是包含第一服务节点标识的确认消息,服务控制设备根据所述消息确认网关设备的缓存列表不包含所述第一服务节点的地址信息。
需要说明的是,由于第一服务节点发送下线请求后,各个网关设备还可能保存有第一服务节点的地址信息,这时第一服务节点还在继续向外提供服务。因此,服务控制设备需要确认所有的网关设备gateway上均不保存第一服务节点的地址信息。
S404,若确认网关设备的缓存列表不包含第一服务节点的地址信息,服务控制设备在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。
为了避免第一服务节点正在处理的外部数据请求丢失,在本申请实施例中,在在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令,使得外部客户端对应用程序的调用不致失败,实现了外部客户端无感知的停机发布。
在一些实施方式中,服务控制设备确认所述第一服务节点的数据请求处理完毕包括:服务控制设备根据各数据请求的历史处理时间确定第一预设时间,在经过第一预设时间后,确认第一服务节点数据处理请求处理完毕。举例说明,可以获取各数据请求的历史处理数据,确定平均处理时长或者最长处理时长,根据确定的平均处理时长或者最长处理时长确定第一预设时间,使得第一预设时间大于平均处理时长或者最长处理时长。例如,数据请求的平均处理时长为90S,可以设置第一预设时长为120S。这样,经过120S后,数据请求一般都处理完毕了,这时可以向第一服务节点发送关闭指令。
在一些实施方式中,服务控制设备确认所述第一服务节点的数据请求处理完毕包括:服务控制设备获取第一服务节点的资源占用率,当所述资源占用率小于第一预设阈值时,确定第一服务节点的数据请求处理完毕。举例说明,服务节点在有数据请求处理时以及无数据处理请求时,资源占用率是不一样的。当资源占用率小于设定的第一预设阈值,可以确定服务节点无数据请求处理。第一预设阈值的确定可以根据经验或者统计得到。
在一些实施方式中,服务控制设备确认所述第一服务节点的数据请求处理完毕包括:服务控制设备接收第一服务节点在数据处理请求处理完毕后发送的确认信息,确定第一服务节点的数据请求处理完毕。在这一实现中,可以设置服务节点可以主动发送确认消息给服务控制设备用于指示数据请求已处理完毕。
在本申请这一实施例中,服务控制设备可以实现应用程序包含的多个服务中的一个服务的子节点的下线控制,而不必下线整个应用程序对应的服务,使得应用程序在服务节点更新时,仍能够对外提供服务,且调用应用程序的外部客户端对此无感知,实现了应用程序服务的灰度发布,提高了应用程序的处理性能和更新效率,提升了用户体验。此外,本申请实施例服务控制设备在确认注册设备及网关设备均不包含第一服务节点的注册信息时,才关闭第一服务节点,使得新的外部数据请求不会由网关分配到第一服务节点上,避免了外部数据请求的调用失败。另外,本申请实施例在确认第一服务节点的数据请求处理完毕后,才关闭第一服务节点,不会丢失第一服务节点正在处理的数据请求,避免了外部数据请求的调用失败,提升了用户体验。
参见图5,为本申请另一实施例提供的服务下线方法流程图。图5所示的方法应用于服务注册设备,所述服务注册设备与服务控制设备、网关设备以及各服务节点通信连接,所述方法可以包括:
S501,服务注册设备接收第一服务节点发送的下线请求,从注册列表中删除第一服务节点的地址信息。
S502,服务注册设备向网关设备发送更新的注册列表,用于指示网关设备根据所述更新的注册列表更新所述网关设备保存的缓存列表。
S503,服务注册设备向服务控制设备发送消息,用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
在一些实施方式中,所述服务注册设备向服务控制设备发送消息包括:所述服务注册设备向服务控制设备发送包含注册列表的消息;其中,所述消息是所述服务注册设备在接收到服务控制设备发送的列表请求后发送的,或者,所述消息是服务注册设备在接收到第一服务节点发送的下线请求并从注册列表中删除所述第一服务节点的地址信息后发送的。
在一些实施方式中,所述服务注册设备向服务控制设备发送消息包括:所述服务注册设备向服务控制设备发送包含第一服务节点标识的确认消息,所述确认消息用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
参见图6,为本申请再一实施例提供的服务下线方法流程图。图6所示的方法应用于网关设备,所述网关设备与服务控制设备、服务注册设备以及各服务节点通信连接,所述方法可以包括:
S601,网关设备接收服务注册设备发送的更新的注册列表,根据所述更新的注册列表更新所述网关设备保存的缓存列表。
S602,网关设备向服务控制设备发送消息,用于指示所述网关设备的缓存列表是否包含第一服务节点的地址信息。
在一些实施方式中,所述网关设备向服务控制设备发送消息包括:所述网关设备向服务控制设备发送包含缓存列表的消息;其中,所述消息是所述网关设备在接收到服务控制设备发送的列表请求后发送的,或者,所述消息是网关设备在更新缓存列表中的服务节点的地址信息后发送的。
在一些实施方式中,所述网关设备向服务控制设备发送消息包括:所述网关设备向服务控制设备发送包含第一服务节点标识的确认消息,所述确认消息用于指示所述服务控制设备所述缓存列表不包含所述第一服务节点的地址信息。
在一些实施方式中,所述网关设备还可以接收针对第一应用程序的外部数据请求,根据更新的缓存列表选择可用服务节点用于处理所述外部数据请求。需要说明的是,网关设备是根据缓存列表确定可用服务节点的地址,并将外部数据请求分配给可用服务节点的。由于服务控制设备已确认网关设备的缓存列表不再保存需要下线的第一服务节点的地址信息,因此可以有效避免有新的外部请求发送到需要下线的第一服务节点上。而第一应用程序对应的其他服务节点仍可以对外提供服务、处理外部数据请求。在第一服务节点停机后,外部客户端仍然可以调用第一应用程序而不必停止发送请求,实现了外部客户端无感知的灰度发布。
为了便于本领域技术人员更清楚地理解本申请的实施方式,下面以一个具体示例对本申请实施方式进行介绍。需要说明的是,该具体示例仅为使得本领域技术人员更清楚地了解本申请,但本申请的实施方式不限于该具体示例。
参见图7,为本申请又一实施例提供的服务下线方法信令交互图。如图7所示,可以包括:
S701,服务控制设备确定第一服务节点。
S702,服务控制设备向第一服务节点发送下线指令。
S703,第一服务节点接收下线指令,向服务注册设备发送下线请求。
S704,服务注册设备接收第一服务节点的下线请求,在注册列表中删除所述第一服务节点的地址信息。
S705,服务注册设备向网关设备发送列表更新请求,用于指示网关设备更新缓存的列表。
S706,网关设备接收更新的注册列表,更新本地缓存的列表。
S707,服务控制设备向服务注册设备发送列表请求。
S708,服务注册设备向服务控制设备发送注册列表。
S709,服务控制设备判断该注册列表是否包含第一服务节点的地址信息。若否,执行S710;若是,等待第二预设时间后,再次执行S707向服务注册设备发送列表请求。
S710,服务控制设备向网关设备发送列表请求。
S711,网关设备向服务控制设备发送缓存列表。
S712,服务控制设备判断该缓存列表是否包含第一服务节点的地址信息。若否,执行S713;若是,等待第三预设时间后,再次执行S710向网关设备发送列表请求。
S713,服务控制设备确认第一服务节点的外部数据请求是否处理完毕。若是,执行S714。若否,等待一段时间,执行S714。
S714,服务控制设备发送关闭指令,关闭第一服务节点。
可选地,所述方法还可以包括以下步骤(图7未示出):
S715,负载均衡服务器接收针对第一应用程序的外部数据请求,选择网关设备。
S716,网关设备接收外部数据请求,根据更新的缓存列表选择第二服务节点处理所述外部数据请求。
S717,第二服务节点处理所述外部数据请求。
下面对本申请实施例提供的方法对应的设备进行介绍。
参见图8,为本申请一实施例提供的服务控制设备示意图。
一种服务控制设备800,包括:
确定单元801,用于确定第一服务节点,向所述第一服务节点发送下线指令;其中,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务。其中,所述确定单元801的具体实现可以参照图4所示实施例的S401而实现。
第一确认单元802,用于确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;其中,所述服务注册设备用于在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息。其中,所述第一确认单元802的具体实现可以参照图4所示实施例的S402而实现。
第二确认单元803,用于若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,确认网关设备的缓存列表是否包含第一服务节点的地址信息;其中,所述网关设备用于根据所述注册列表的信息更新所述缓存列表的信息。其中,所述第二确认单元803的具体实现可以参照图4所示实施例的S403而实现。
关闭单元804,用于若确认网关设备的缓存列表不包含第一服务节点的地址信息,服务控制设备在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。其中,所述关闭单元804的具体实现可以参照图4所示实施例的S404而实现。
在一些实施方式中,所述确定单元801具体包括:
第一确定单元,用于当第一服务对应多个服务节点时,从多个服务节点中选取资源占用率低的一个或多个服务节点作为第一服务节点;或者,
第二确定单元,用于当第一服务对应多个服务节点时,从多个服务节点中随机选取一个或多个服务节点作为第一服务节点;其中,选取的第一服务节点的数量小于第一服务对应的服务节点的数量。
在一些实施方式中,所述第一确认单元802包括:
第一发送单元,用于向服务注册设备发送列表请求;
第一接收单元,用于接收服务注册设备发送的注册列表,将所述第一服务节点的地址信息与所述注册列表包含的各服务节点的地址信息匹配;若不存在匹配结果,确定服务注册设备从注册列表中删除所述第一服务节点的地址信息。
在一些实施方式中,所述第一确认单元802包括:
第二接收单元,用于接收服务注册设备发送的确认信息,根据所述确认信息确定服务注册设备从注册列表中删除所述第一服务节点的地址信息;其中,所述确认信息是服务注册设备在接收到第一服务节点发送的下线请求并从注册列表中删除所述第一服务节点的地址信息后发送的。
在一些实施方式中,所述第二确认单元803包括:
第二发送单元,用于向网关设备发送请求;
第三接收单元,用于接收网关设备发送的缓存列表,将所述第一服务节点的地址信息与所述缓存列表包含的各服务节点的地址信息进行匹配;若不存在匹配结果,确定所述缓存列表不包含第一服务节点的地址信息。
在一些实施方式中,所述第二确认单元803包括:
第四接收单元,用于收网关设备发送的确认信息,根据所述确认信息确定网关设备的缓存列表不包含所述第一服务节点的地址信息;其中,所述确认信息是网关设备更新缓存列表中的服务节点的地址信息后发送的。
在一些实施方式中,所述关闭单元具体包括:
第二确定单元,用于根据各数据请求的历史处理时间确定第一预设时间,在经过第一预设时间后,确认第一服务节点数据处理请求处理完毕;或者,
第三确定单元,用于获取第一服务节点的资源占用率,当所述资源占用率小于第一预设阈值时,确定第一服务节点的数据请求处理完毕;或者,
第四确定单元,用于接收第一服务节点在数据处理请求处理完毕后发送的确认信息,确定第一服务节点的数据请求处理完毕。
参见图9,是本申请另一实施例提供的服务控制设备的框图。包括:至少一个处理器901(例如CPU),存储器902和至少一个通信总线903,用于实现这些装置之间的连接通信。处理器901用于执行存储器902中存储的可执行模块,例如计算机程序。存储器902可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器901执行所述一个或者一个以上程序包含用于进行以下操作的指令:确定第一服务节点,向所述第一服务节点发送下线指令;其中,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;其中,所述服务注册设备用于在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息;若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,确认网关设备的缓存列表是否包含第一服务节点的地址信息;其中,所述网关设备用于根据所述注册列表的信息更新所述缓存列表的信息;若确认网关设备的缓存列表不包含第一服务节点的地址信息,在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。
在一些实施方式中,处理器901执行确定第一服务节点操作的指令具体包括:当第一服务对应多个服务节点时,从多个服务节点中选取资源占用率低的一个或多个服务节点作为第一服务节点;或者,当第一服务对应多个服务节点时,从多个服务节点中随机选取一个或多个服务节点作为第一服务节点;其中,选取的第一服务节点的数量小于第一服务对应的服务节点的数量。
在一些实施方式中,处理器901执行确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息操作的指令具体包括:向服务注册设备发送列表请求;接收服务注册设备发送的注册列表,将所述第一服务节点的地址信息与所述注册列表包含的各服务节点的地址信息匹配;若不存在匹配结果,确定服务注册设备从注册列表中删除所述第一服务节点的地址信息。
在一些实施方式中,处理器901执行确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息操作的指令具体包括:接收服务注册设备发送的确认信息,根据所述确认信息确定服务注册设备从注册列表中删除所述第一服务节点的地址信息;其中,所述确认信息是服务注册设备在接收到第一服务节点发送的下线请求并从注册列表中删除所述第一服务节点的地址信息后发送的。
在一些实施方式中,处理器901执行确认网关设备的缓存列表是否包含第一服务节点的地址信息操作的指令具体包括:向网关设备发送请求;收网关设备发送的缓存列表,将所述第一服务节点的地址信息与所述缓存列表包含的各服务节点的地址信息进行匹配;若不存在匹配结果,确定所述缓存列表不包含第一服务节点的地址信息。
在一些实施方式中,处理器901执行确认网关设备的缓存列表是否包含第一服务节点的地址信息操作的指令具体包括:接收网关设备发送的确认信息,根据所述确认信息确定网关设备的缓存列表不包含所述第一服务节点的地址信息;其中,所述确认信息是网关设备更新缓存列表中的服务节点的地址信息后发送的。
在一些实施方式中,处理器901执行确认网关设备的缓存列表是否包含第一服务节点的地址信息操作的指令具体包括:根据各数据请求的历史处理时间确定第一预设时间,在经过第一预设时间后,确认第一服务节点数据处理请求处理完毕;或者,获取第一服务节点的资源占用率,当所述资源占用率小于第一预设阈值时,确定第一服务节点的数据请求处理完毕;或者,接收第一服务节点在数据处理请求处理完毕后发送的确认信息,确定第一服务节点的数据请求处理完毕。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。一种机器可读介质,例如该机器可读介质可以为非临时性计算机可读存储介质,当所述介质中的指令由装置(终端或者服务器)的处理器执行时,使得装置能够执行一种基于微服务架构的服务下线方法,所述方法包括:确定第一服务节点,向所述第一服务节点发送下线指令;其中,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;其中,所述服务注册设备用于在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息;若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,确认网关设备的缓存列表是否包含第一服务节点的地址信息;其中,所述网关设备用于根据所述注册列表的信息更新所述缓存列表的信息;若确认网关设备的缓存列表不包含第一服务节点的地址信息,在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。
参见图10,为本申请一实施例提供的服务注册设备示意图。
一种服务注册设备1000,包括:
删除单元1001,用于接收第一服务节点发送的下线请求,从注册列表中删除第一服务节点的地址信息。其中,所述删除单元1001的具体实现可以参照图5所示实施例的S501而实现。
第一发送单元1002,用于向网关设备发送更新的注册列表,用于指示网关设备根据所述更新的注册列表更新所述网关设备保存的缓存列表。其中,所述第一发送单元1002的具体实现可以参照图5所示实施例的S502而实现。
第二发送单元1003,用于若向服务控制设备发送消息,用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。其中,所述第二发送单元1003的具体实现可以参照图5所示实施例的S503而实现。
在一些实施方式中,所述第二发送单元1003具体包括:
第一发送子单元,用于向服务控制设备发送包含注册列表的消息;其中,所述消息是所述服务注册设备在接收到服务控制设备发送的列表请求后发送的,或者,所述消息是服务注册设备在接收到第一服务节点发送的下线请求并从注册列表中删除所述第一服务节点的地址信息后发送的;或者,
第二发送子单元,用于向服务控制设备发送包含第一服务节点标识的确认消息,所述确认消息用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
参见图11,是本申请另一实施例提供的服务注册设备的框图。包括:至少一个处理器1101(例如CPU),存储器1102和至少一个通信总线1103,用于实现这些装置之间的连接通信。处理器1101用于执行存储器1102中存储的可执行模块,例如计算机程序。存储器1102可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器1101执行所述一个或者一个以上程序包含用于进行以下操作的指令:接收第一服务节点发送的下线请求,从注册列表中删除第一服务节点的地址信息;向网关设备发送更新的注册列表,用于指示网关设备根据所述更新的注册列表更新所述网关设备保存的缓存列表;向服务控制设备发送消息,用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
在一些实施方式中,处理器1101执行向服务控制设备发送消息操作的指令具体包括:向服务控制设备发送包含注册列表的消息;其中,所述消息是所述服务注册设备在接收到服务控制设备发送的列表请求后发送的,或者,所述消息是服务注册设备在接收到第一服务节点发送的下线请求并从注册列表中删除所述第一服务节点的地址信息后发送的。
在一些实施方式中,处理器1101执行向服务控制设备发送消息操作的指令具体包括:向服务控制设备发送包含第一服务节点标识的确认消息,所述确认消息用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。一种机器可读介质,例如该机器可读介质可以为非临时性计算机可读存储介质,当所述介质中的指令由装置(终端或者服务器)的处理器执行时,使得装置能够执行一种基于微服务架构的服务下线方法,所述方法包括:接收第一服务节点发送的下线请求,从注册列表中删除第一服务节点的地址信息;向网关设备发送更新的注册列表,用于指示网关设备根据所述更新的注册列表更新所述网关设备保存的缓存列表;向服务控制设备发送消息,用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
参见图12,为本申请一实施例提供的网关设备示意图。
一种网关设备1200,包括:
接收单元1201,用于接收服务注册设备发送的更新的注册列表,根据所述更新的注册列表更新所述网关设备保存的缓存列表。其中,所述接收单元1201的具体实现可以参照图6所示实施例的S601而实现。
发送单元1202,用于向服务控制设备发送消息,用于指示所述网关设备的缓存列表是否包含第一服务节点的地址信息。其中,所述发送单元1202的具体实现可以参照图6所示实施例的S602而实现。
在一些实施方式中,所述发送单元1202具体包括:
第一发送子单元,用于向服务控制设备发送包含缓存列表的消息;其中,所述消息是所述网关设备在接收到服务控制设备发送的列表请求后发送的,或者,所述消息是网关设备在更新缓存列表中的服务节点的地址信息后发送的;或者,
第二发送子单元,用于向服务控制设备发送包含第一服务节点标识的确认消息,所述确认消息用于指示所述服务控制设备所述缓存列表不包含所述第一服务节点的地址信息。
在一些实施方式中,所述网关设备1200还包括:
选择单元,用于接收针对第一应用程序的外部数据请求,根据更新的缓存列表选择可用服务节点用于处理所述外部数据请求。
参见图13,是本申请另一实施例提供的服务注册设备的框图。包括:至少一个处理器1301(例如CPU),存储器1302和至少一个通信总线1303,用于实现这些装置之间的连接通信。处理器1301用于执行存储器1302中存储的可执行模块,例如计算机程序。存储器1302可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器1301执行所述一个或者一个以上程序包含用于进行以下操作的指令:接收服务注册设备发送的更新的注册列表,根据所述更新的注册列表更新所述网关设备保存的缓存列表;向服务控制设备发送消息,用于指示所述网关设备的缓存列表是否包含第一服务节点的地址信息。
在一些实施方式中,处理器1301执行向服务控制设备发送消息操作的指令具体包括:向服务控制设备发送包含缓存列表的消息;其中,所述消息是所述网关设备在接收到服务控制设备发送的列表请求后发送的,或者,所述消息是网关设备在更新缓存列表中的服务节点的地址信息后发送的。
在一些实施方式中,处理器1301执行向服务控制设备发送消息操作的指令具体包括:向服务控制设备发送包含第一服务节点标识的确认消息,所述确认消息用于指示所述服务控制设备所述缓存列表不包含所述第一服务节点的地址信息。
在一些实施方式中,所述处理器1301还用于执行以下操作的指令:接收针对第一应用程序的外部数据请求,根据更新的缓存列表选择可用服务节点用于处理所述外部数据请求。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。一种机器可读介质,例如该机器可读介质可以为非临时性计算机可读存储介质,当所述介质中的指令由装置(终端或者服务器)的处理器执行时,使得装置能够执行一种基于微服务架构的服务下线方法,所述方法包括:接收服务注册设备发送的更新的注册列表,根据所述更新的注册列表更新所述网关设备保存的缓存列表;向服务控制设备发送消息,用于指示所述网关设备的缓存列表是否包含第一服务节点的地址信息。
其中,本申请装置各单元或模块的设置可以参照图2至图7所示的方法而实现,在此不赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (22)
1.一种基于微服务架构的服务下线方法,其特征在于,应用于服务控制设备,所述服务控制设备与服务注册设备、网关设备以及各服务节点通信连接,所述方法包括:
服务控制设备确定第一服务节点,向所述第一服务节点发送下线指令;其中,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;所述第一服务节点为所述第一服务对应的服务节点中选取的一个或多个服务节点,其中,选取的第一服务节点的数量小于所述第一服务对应的服务节点的数量;
服务控制设备确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;其中,所述服务注册设备用于在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息;
若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,服务控制设备确认网关设备的缓存列表是否包含第一服务节点的地址信息;其中,所述网关设备用于根据所述注册列表的信息更新所述缓存列表的信息;
若确认网关设备的缓存列表不包含第一服务节点的地址信息,服务控制设备在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。
2.根据权利要求1所述的方法,其特征在于,所述服务控制设备确定第一服务节点包括:
当第一服务对应多个服务节点时,从多个服务节点中选取资源占用率低的一个或多个服务节点作为第一服务节点;或者,
当第一服务对应多个服务节点时,从多个服务节点中随机选取一个或多个服务节点作为第一服务节点。
3.根据权利要求1所述的方法,其特征在于,所述服务控制设备确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息包括:
服务控制设备向服务注册设备发送列表请求;
服务控制设备接收服务注册设备发送的注册列表,将所述第一服务节点的地址信息与所述注册列表包含的各服务节点的地址信息匹配;若不存在匹配结果,确定服务注册设备从注册列表中删除所述第一服务节点的地址信息。
4.根据权利要求1所述的方法,其特征在于,所述服务控制设备确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息包括:
服务控制设备接收服务注册设备发送的确认信息,根据所述确认信息确定服务注册设备从注册列表中删除所述第一服务节点的地址信息;其中,所述确认信息是服务注册设备在接收到第一服务节点发送的下线请求并从注册列表中删除所述第一服务节点的地址信息后发送的。
5.根据权利要求1所述的方法,其特征在于,所述服务控制设备确认网关设备的缓存列表是否包含第一服务节点的地址信息包括:
服务控制设备向网关设备发送请求;
服务控制设备接收网关设备发送的缓存列表,将所述第一服务节点的地址信息与所述缓存列表包含的各服务节点的地址信息进行匹配;若不存在匹配结果,确定所述缓存列表不包含第一服务节点的地址信息。
6.根据权利要求1所述的方法,其特征在于,所述服务控制设备确认网关设备的缓存列表是否包含第一服务节点的地址信息包括:
服务控制设备接收网关设备发送的确认信息,根据所述确认信息确定网关设备的缓存列表不包含所述第一服务节点的地址信息;其中,所述确认信息是网关设备更新缓存列表中的服务节点的地址信息后发送的。
7.根据权利要求1所述的方法,其特征在于,服务控制设备确认所述第一服务节点的数据请求处理完毕包括:
服务控制设备根据各数据请求的历史处理时间确定第一预设时间,在经过第一预设时间后,确认第一服务节点数据处理请求处理完毕;或者,
服务控制设备获取第一服务节点的资源占用率,当所述资源占用率小于第一预设阈值时,确定第一服务节点的数据请求处理完毕;或者,
服务控制设备接收第一服务节点在数据处理请求处理完毕后发送的确认信息,确定第一服务节点的数据请求处理完毕。
8.一种基于微服务架构的服务下线方法,其特征在于,应用于服务注册设备,所述服务注册设备与服务控制设备、网关设备以及各服务节点通信连接,所述方法包括:
服务注册设备接收第一服务节点发送的下线请求,从注册列表中删除第一服务节点的地址信息;所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;所述第一服务节点为所述第一服务对应的服务节点中选取的一个或多个服务节点,其中,选取的第一服务节点的数量小于所述第一服务对应的服务节点的数量;
服务注册设备向网关设备发送更新的注册列表,用于指示网关设备根据所述更新的注册列表更新所述网关设备保存的缓存列表;
服务注册设备向服务控制设备发送消息,用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
9.根据权利要求8所述的方法,其特征在于,所述服务注册设备向服务控制设备发送消息包括:
所述服务注册设备向服务控制设备发送包含注册列表的消息;其中,所述消息是所述服务注册设备在接收到服务控制设备发送的列表请求后发送的,或者,所述消息是服务注册设备在接收到第一服务节点发送的下线请求并从注册列表中删除所述第一服务节点的地址信息后发送的;
或者,
所述服务注册设备向服务控制设备发送包含第一服务节点标识的确认消息,所述确认消息用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
10.一种基于微服务架构的服务下线方法,其特征在于,应用于网关设备,所述网关设备与服务控制设备、服务注册设备以及各服务节点通信连接,所述方法包括:
网关设备接收服务注册设备发送的更新的注册列表,根据所述更新的注册列表更新所述网关设备保存的缓存列表;
网关设备向服务控制设备发送消息,用于指示所述网关设备的缓存列表是否包含第一服务节点的地址信息;所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;所述第一服务节点为所述第一服务对应的服务节点中选取的一个或多个服务节点,其中,选取的第一服务节点的数量小于所述第一服务对应的服务节点的数量。
11.根据权利要求10所述的方法,其特征在于,所述网关设备向服务控制设备发送消息包括:
所述网关设备向服务控制设备发送包含缓存列表的消息;其中,所述消息是所述网关设备在接收到服务控制设备发送的列表请求后发送的,或者,所述消息是网关设备在更新缓存列表中的服务节点的地址信息后发送的;
或者,
所述网关设备向服务控制设备发送包含第一服务节点标识的确认消息,所述确认消息用于指示所述服务控制设备所述缓存列表不包含所述第一服务节点的地址信息。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述网关设备接收针对第一应用程序的外部数据请求,根据更新的缓存列表选择可用服务节点用于处理所述外部数据请求。
13.一种服务控制设备,其特征在于,包括:
确定单元,用于确定第一服务节点,向所述第一服务节点发送下线指令;其中,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;所述第一服务节点为所述第一服务对应的服务节点中选取的一个或多个服务节点,其中,选取的第一服务节点的数量小于第一服务对应的服务节点的数量;
第一确认单元,用于确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;其中,所述服务注册设备用于在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息;
第二确认单元,用于若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,确认网关设备的缓存列表是否包含第一服务节点的地址信息;其中,所述网关设备用于根据所述注册列表的信息更新所述缓存列表的信息;
关闭单元,用于若确认网关设备的缓存列表不包含第一服务节点的地址信息,服务控制设备在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。
14.一种服务控制设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1至7中一个或多个所述的基于微服务架构的服务下线方法。
15.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至7中一个或多个所述的基于微服务架构的服务下线方法。
16.一种服务注册设备,其特征在于,包括:
删除单元,用于接收第一服务节点发送的下线请求,从注册列表中删除第一服务节点的地址信息;所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;所述第一服务节点为所述第一服务对应的服务节点中选取的一个或多个服务节点,其中,选取的第一服务节点的数量小于所述第一服务对应的服务节点的数量;
第一发送单元,用于向网关设备发送更新的注册列表,用于指示网关设备根据所述更新的注册列表更新所述网关设备保存的缓存列表;
第二发送单元,用于向服务控制设备发送消息,用于指示所述服务控制设备已从注册列表中删除所述第一服务节点的地址信息。
17.一种服务注册设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求8至9中一个或多个所述的基于微服务架构的服务下线方法。
18.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求8至9中一个或多个所述的基于微服务架构的服务下线方法。
19.一种网关设备,其特征在于,包括:
接收单元,用于接收服务注册设备发送的更新的注册列表,根据所述更新的注册列表更新所述网关设备保存的缓存列表;
发送单元,用于向服务控制设备发送消息,用于指示所述网关设备的缓存列表是否包含第一服务节点的地址信息;所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;所述第一服务节点为所述第一服务对应的服务节点中选取的一个或多个服务节点,其中,选取的第一服务节点的数量小于所述第一服务对应的服务节点的数量。
20.一种网关设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求10至12中一个或多个所述的基于微服务架构的服务下线方法。
21.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求10至12中一个或多个所述的基于微服务架构的服务下线方法。
22.一种基于微服务架构的服务下线系统,其特征在于,包括服务控制设备、服务注册设备、网关设备以及各服务节点,其中:
所述服务控制设备用于确定第一服务节点,向所述第一服务节点发送下线指令;其中,所述第一服务节点与第一服务对应,所述第一服务为第一应用程序包括的多个服务中的一个服务;所述第一服务节点为所述第一服务对应的服务节点中选取的一个或多个服务节点,其中,选取的第一服务节点的数量小于所述第一服务对应的服务节点的数量;
所述第一服务节点用于接收服务控制设备发送的下线指令,向服务注册设备发送下线请求;
所述服务注册设备用于在接收到第一服务节点发送的下线请求后,从注册列表中删除所述第一服务节点的地址信息;
所述网关设备用于根据所述注册列表的信息更新缓存列表的信息;
所述服务控制设备还用于确认服务注册设备是否从注册列表中删除所述第一服务节点的地址信息;若确认服务注册设备已从注册列表中删除所述第一服务节点的地址信息,服务控制设备确认网关设备的缓存列表是否包含第一服务节点的地址信息;若确认网关设备的缓存列表不包含第一服务节点的地址信息,服务控制设备在确认第一服务节点的数据请求处理完毕后,发送关闭第一服务节点的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711192759.4A CN107948284B (zh) | 2017-11-24 | 2017-11-24 | 一种基于微服务架构的服务下线方法、设备和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711192759.4A CN107948284B (zh) | 2017-11-24 | 2017-11-24 | 一种基于微服务架构的服务下线方法、设备和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107948284A CN107948284A (zh) | 2018-04-20 |
CN107948284B true CN107948284B (zh) | 2021-04-16 |
Family
ID=61948706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711192759.4A Active CN107948284B (zh) | 2017-11-24 | 2017-11-24 | 一种基于微服务架构的服务下线方法、设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107948284B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110636093B (zh) * | 2018-06-25 | 2022-04-26 | 中兴通讯股份有限公司 | 微服务注册和发现方法、设备、存储介质以及微服务系统 |
CN108901022B (zh) * | 2018-06-28 | 2021-08-20 | 深圳云之家网络有限公司 | 一种微服务统一鉴权方法及网关 |
CN111212099A (zh) * | 2018-11-22 | 2020-05-29 | 青岛海信智能商用系统股份有限公司 | 一种微服务管理方法及装置 |
CN109814917A (zh) * | 2019-01-16 | 2019-05-28 | 中国平安财产保险股份有限公司 | 微服务发布方法、装置、计算机设备和存储介质 |
CN111629013B (zh) * | 2019-02-27 | 2024-06-18 | 北京奇虎科技有限公司 | 一种业务节点管理的方法、装置和节点网络 |
CN110087251B (zh) * | 2019-04-15 | 2022-10-11 | 公牛集团股份有限公司 | 一种快速删除设备的方法、装置、计算机设备及存储介质 |
CN112055039B (zh) * | 2019-06-06 | 2022-07-26 | 阿里巴巴集团控股有限公司 | 数据访问方法、装置、系统及计算设备 |
CN110489248A (zh) * | 2019-08-22 | 2019-11-22 | 中国工商银行股份有限公司 | 系统停机方法、服务调用方法、装置及存储介质 |
CN112532670B (zh) * | 2019-09-19 | 2022-07-05 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其装置 |
CN110708367A (zh) * | 2019-09-24 | 2020-01-17 | 中信百信银行股份有限公司 | 应用调用方法、应用发布方法及应用发布系统 |
CN111581061A (zh) * | 2020-05-15 | 2020-08-25 | 海信集团有限公司 | 服务下线方法、装置及设备 |
CN111953562B (zh) * | 2020-07-29 | 2022-05-24 | 新华三信息安全技术有限公司 | 一种设备状态监控方法及装置 |
CN112087506B (zh) * | 2020-09-01 | 2023-02-07 | 北京火山引擎科技有限公司 | 一种集群节点管理方法、装置及计算机存储介质 |
CN112351077B (zh) * | 2020-10-21 | 2022-07-29 | 中国建设银行股份有限公司 | 一种应用服务运行方法、系统、装置及存储介质 |
CN112350856B (zh) * | 2020-10-27 | 2023-04-07 | 中国联合网络通信集团有限公司 | 分布式服务签退方法及设备 |
CN112632032B (zh) * | 2020-12-18 | 2022-12-27 | 华人运通(上海)云计算科技有限公司 | 一种数据迁移方法、装置、存储介质及终端设备 |
CN113315824B (zh) * | 2021-05-26 | 2023-04-18 | 武汉悦学帮网络技术有限公司 | 一种应用的灰度发布方法、装置及应用的灰度发布系统 |
CN114401311A (zh) * | 2022-01-19 | 2022-04-26 | 阿维塔科技(重庆)有限公司 | 微服务注册及发现方法、装置、电子设备及介质 |
CN114942823A (zh) * | 2022-04-06 | 2022-08-26 | 杭州华橙软件技术有限公司 | 一种容器中服务下线的方法、装置、电子装置和存储介质 |
CN115103008B (zh) * | 2022-06-13 | 2024-03-08 | 北京奇艺世纪科技有限公司 | 一种服务请求转发系统 |
CN115643303A (zh) * | 2022-10-17 | 2023-01-24 | 青岛海尔智能家电科技有限公司 | 基于微服务的处理方法及装置、微服务架构、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208047A (zh) * | 2014-05-29 | 2015-12-30 | 阿里巴巴集团控股有限公司 | 分布式系统服务器上下线方法及服务器 |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
US9652214B1 (en) * | 2015-12-18 | 2017-05-16 | Sap Se | Pluggable extension of software applications |
CN106790601A (zh) * | 2016-12-29 | 2017-05-31 | Tcl集团股份有限公司 | 服务地址的读取装置、系统和方法 |
CN106789974A (zh) * | 2016-12-07 | 2017-05-31 | 武汉市烽视威科技有限公司 | 一种iptv系统及iptv业务的实现方法 |
-
2017
- 2017-11-24 CN CN201711192759.4A patent/CN107948284B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105208047A (zh) * | 2014-05-29 | 2015-12-30 | 阿里巴巴集团控股有限公司 | 分布式系统服务器上下线方法及服务器 |
US9652214B1 (en) * | 2015-12-18 | 2017-05-16 | Sap Se | Pluggable extension of software applications |
CN106453288A (zh) * | 2016-09-29 | 2017-02-22 | 上海和付信息技术有限公司 | 一种支持异步模式的分布式微服务框架系统及其实现方法 |
CN106789974A (zh) * | 2016-12-07 | 2017-05-31 | 武汉市烽视威科技有限公司 | 一种iptv系统及iptv业务的实现方法 |
CN106790601A (zh) * | 2016-12-29 | 2017-05-31 | Tcl集团股份有限公司 | 服务地址的读取装置、系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107948284A (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107948284B (zh) | 一种基于微服务架构的服务下线方法、设备和系统 | |
US9154382B2 (en) | Information processing system | |
US20170149606A1 (en) | Synchronization of Configuration File of Virtual Application Distribution Chassis | |
CN106657314B (zh) | 跨数据中心数据同步系统及方法 | |
US9608831B2 (en) | Migrating a chat message service provided by a chat server to a new chat server | |
CN110839084A (zh) | 会话管理方法、装置、设备和介质 | |
US9900403B2 (en) | Method and server for assigning relative order to message by using vector clock and delivering the message based on the assigned relative order under distributed environment | |
US10802896B2 (en) | Rest gateway for messaging | |
US20180248940A1 (en) | Distributed data management | |
CN101308467A (zh) | 一种任务处理的方法和装置 | |
CN111790159B (zh) | 数据处理的方法、装置、设备及计算机可读存储介质 | |
US10467143B1 (en) | Event-driven cache | |
CN108958933B (zh) | 任务执行器的配置参数更新方法、装置及设备 | |
EP1843520A1 (en) | A method and device for controlling the configuration of configuration parameter set of the remote device | |
CN112671914B (zh) | 一种基于actor模型的物联网设备通讯方法和系统 | |
CN110417876A (zh) | 会话方法、分布式系统中的节点服务器及主控设备 | |
CN103931138A (zh) | 可扩展的分布式多集群设备管理服务器架构及其操作的方法 | |
CN109413117B (zh) | 分布式数据计算方法、装置、服务器及计算机存储介质 | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN110233791B (zh) | 数据去重方法和装置 | |
CN109688011B (zh) | 一种基于OpenStack的agent选择方法及装置 | |
CN107682396B (zh) | Im服务器部署方法及系统 | |
US20210256600A1 (en) | Connector leasing for long-running software operations | |
US11695644B2 (en) | Communication management apparatus and communication management method | |
CN110971669B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |