CN113259146B - 微服务访问控制方法及装置、微服务系统 - Google Patents

微服务访问控制方法及装置、微服务系统 Download PDF

Info

Publication number
CN113259146B
CN113259146B CN202010090382.7A CN202010090382A CN113259146B CN 113259146 B CN113259146 B CN 113259146B CN 202010090382 A CN202010090382 A CN 202010090382A CN 113259146 B CN113259146 B CN 113259146B
Authority
CN
China
Prior art keywords
service
service instance
state data
list
current
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
Application number
CN202010090382.7A
Other languages
English (en)
Other versions
CN113259146A (zh
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.)
China Mobile Zhejiang Innovation Research Institute Co ltd
China Mobile Communications Group Co Ltd
China Mobile Group Zhejiang Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Zhejiang 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 China Mobile Communications Group Co Ltd, China Mobile Group Zhejiang Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202010090382.7A priority Critical patent/CN113259146B/zh
Publication of CN113259146A publication Critical patent/CN113259146A/zh
Application granted granted Critical
Publication of CN113259146B publication Critical patent/CN113259146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service

Abstract

本发明实施例涉及通信技术领域,公开了一种微服务访问控制方法及装置、微服务系统,该方法包括:接收用户的访问请求,所述访问请求携带标记信息;基于所述访问请求获取对应的服务名称及微服务系统当前的状态数据,所述状态数据对应灰度发布的一个阶段;从注册中心获取当前的服务实例列表;基于所述标记信息、当前的状态数据从所述当前服务实例列表中筛选出对应的服务实例;访问所述筛选的服务实例。通过上述方式,根据微服务系统当前的状态数据从当前的服务实例列表中筛选对应的服务实例,无需修改配置,降低风险,提高访问效率。

Description

微服务访问控制方法及装置、微服务系统
技术领域
本发明实施例涉及通信技术领域,具体涉及一种微服务访问控制方法及装置、微服务系统。
背景技术
随着用户量和使用频次的不断增加,对于软件系统的稳定性与持续高可用性的要求也会相应地提高。在当前主流的敏捷开发模式中,为了快速响应用户以及产品部门提出的新需求,生产环境上线变更也会非常地频繁。在传统方式的生产环境上线过程中,软件系统是处于不可用状态,且完成上线后的短时间内也无法保证软件系统不存在任何问题,这需要一定的时间进行测试验证。因此,为了最小程度影响减小对生产环境的稳定性和持续高可用性的影响,选择在用户使用量最少的时间段进行(通常是半夜)。但这不仅会加重运维人员的负担,也无法在生产环境出现严重问题时进行临时性的紧急上线修复,还会出现在一段时间用户无法使用的情况。为了解决生产上线过程不影响软件系统持续可用这一问题,提出了回复发布的概念,其生产发布的过程中先将新版本的程序发布到一部分集群服务实例上,发布和测试验证完成后再发布新版本的程序到另外一部分集群服务实例上,期间通过网关进行访问流量路由控制保证用户始终访问到可用的服务实例。
服务集群化多实例是灰度发布实现的架构基础,而用户访问的流量路由控制是关键,现有技术中,流量路由控制是通过基于开源软件Nginx的来实现的,但Nginx的路由策略需要根据不同的阶段进行相应地修改,存在较大的生产风险。
发明内容
鉴于上述问题,本发明实施例提供了一种微服务访问控制方法及装置、微服务系统,克服了上述问题或者至少部分地解决了上述问题。
根据本发明实施例的一个方面,提供了一种微服务访问控制方法,所述方法包括:接收用户的访问请求,所述访问请求携带标记信息;基于所述访问请求获取对应的服务名称及微服务系统当前的状态数据,所述状态数据对应灰度发布的一个阶段;从注册中心获取当前的服务实例列表;基于所述标记信息、当前的状态数据从所述当前服务实例列表中筛选出对应的服务实例;访问所述筛选的服务实例。
在一种可选的方式中,所述访问请求还包括对应的地址,所述基于所述访问请求获取对应的服务名称及微服务系统当前的状态数据,包括:从缓存中获取与所述地址对应的路由规则,从所述路由规则得到对应的服务名称;从所述缓存中获取所述微服务系统当前的状态数据。
在一种可选的方式中,所述基于所述标记信息、当前态的状态数据从所述当前服务实例列表中筛选出对应的服务实例,包括:基于所述当前的状态数据确定所述灰度发布当前所处的阶段;选择与所述确定的阶段对应的服务实例列表,得到筛选的服务实例列表;基于负载均衡策略从所筛选的服务实例列表中选择对应的服务实例。
在一种可选的方式中,所述灰度发布包括三个阶段,分别为:全量非灰度模式、部分灰度模式及全量灰度模式,所述选择与所述确定的阶段对应的服务实例列表,得到筛选的服务实例列表,包括:当所述状态数据对应的阶段为全量非灰度模式时,以所述服务实例列表中的非灰度实例列表作为所述筛选的服务实例列表;或者当所述状态数据对应的阶段为部分灰度模式时,从所述服务实例列表中选择与所述标记信息对应的服务实例,得到所述筛选的服务实例列表;或者当所述状态数据对应的阶段为全灰度模式时,以所述服务实例列表中的所有灰度实例列表作为所述筛选的服务实例列表。
在一种可选的方式中,所述负载均衡策略包括轮询方式,所述轮询方式具体为:基于访问请求的发起时间来分配服务实例。
在一种可选的方式中,所述方法还包括:接收所述注册中心周期性发送的注册信息,所述注册信息包括:网络参数、服务名称、对应的标记、更新时间点。
根据本发明实施例的另一个方面,提供了一种微服务访问控制装置,包括:接收模块,用于接收用户的访问请求,所述访问请求携带标记信息;第一获取模块,用于基于所述访问请求获取对应的服务名称及当前的微服务系统当前的状态数据,所述状态数据对应灰度发布的阶段;第二获取模块,用于从注册中心获取当前的服务实例列表;筛选模块,用于基于所述标记信息、当前的状态数据从所述当前服务实例列表中筛选出对应的服务实例;访问模块,用于访问所述筛选的服务实例。
根据本发明实施例的另一方面,提供了一种微服务系统系统,包括:缓存、注册中心、微服务访问控制装置,其中,所述缓存、注册中心均分别与所述微服务访问控制装置连接,所述微服务访问控制装置包括:接收模块,用于接收用户的访问请求,所述访问请求携带标记信息;第一获取模块,用于基于所述访问请求获取对应的服务名称及当前的微服务系统当前的状态数据,所述状态数据对应灰度发布的阶段;第二获取模块,用于从注册中心获取当前的服务实例列表;筛选模块,用于基于所述标记信息、当前的状态数据从所述当前服务实例列表中筛选出对应的服务实例;访问模块,用于访问所述筛选的服务实例。
根据本发明实施例的另一方面,提供了一种设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述微服务访问控制方法的步骤。
根据本发明实施例的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行上述微服务访问控制方法步骤。
本发明实施例中,根据微服务系统当前的状态数据从当前的服务实例列表中筛选对应的服务实例,无需修改配置,降低风险,提高访问效率。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明第一实施例提供的微服务访问控制方法的流程示意图;
图2示出了本发明第一实施例提供的微服务访问控制方法的步骤S3的具体流程示意图;
图3示出了本发明第二实施例的微服务访问装置的结构示意图;
图4示出了示出了本发明第三实施例的微服务系统的结构示意图;
图5示出了本发明第四实施例的设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了本发明第一实施例提供的微服务访问控制方法的流程示意图。该方法应用于灰度发布,且用于微服务系统,如图1所示,该微服务访问控制方法包括:
步骤S1,接收用户的访问请求;
具体地,用户需要进行访问时,发起访问请求,该访问请求包括:地址(URL)、标记信息(Cookie),该标记信息可以是1或0,还可以是其他标记,此处对此不作限制。
步骤S2,基于访问请求获取对应的服务名称及微服务系统当前的状态数据;
具体地,基于访问请求获取对应的服务名称及微服务系统当前的状态数据,该状态数据对应灰度发布的一个阶段;
步骤S3,从注册中心获取当前的服务实例列表;
具体地,从注册中心获取当前最新的服务实例列表,该服务实例列表包括至少一个灰度服务实例及非灰度服务实例。服务实例可以是服务器,同一服务名称对应若干服务实例,如服务A、B、C(A、B、C是功能性的划分,如比如A负责处理用户的登陆,B负责其他业务),服务A包括服务A1、A2等。
步骤S4,基于标记信息、当前的状态数据从当前服务实例列表中筛选出对应的服务实例;
具体地,基于标记信息、当前的状态数据从当前服务实例列表中筛选出对应的服务实例;
步骤S5,访问筛选的服务实例;
具体地,访问筛选的服务实例,即响应所述用户的访问请求,建立该用户与所筛选的服务实例之间的连接。
在本实施例中,根据微服务系统当前的状态数据从当前的服务实例列表中筛选对应的服务实例,无需修改配置,降低风险,提高访问效率。
在本实施例的一个优选方案中,该方法还可包括:
接收所述注册中心周期性发送的注册信息;
具体地,注册中心会周期性地上报注册信息,该注册信息包括:网络参数(IP:port)、服务名称(serviceID)、对应的标记(mark)、更新时间点(update time)。该上报周期可根据实际情况而设,如2分钟或者其他数值,此处对此不作限制。
在本实施例的一个优选方案中,该步骤S2具体包括:
从缓存中获取与所述地址对应的路由规则,从所述路由规则得到对应的服务名称;
具体地,从缓存中获取与所述地址对应的路由规则,从所述路由规则得到对应的服务名称,由于Redis缓存中存储有不同的路由规则,该路由规则是表示地址与服务名称之间的映射关系,一个服务名称对应一个地址,根据该地址可以在Redis缓存中找到对应的服务名称。
从缓存中获取微服务系统当前的状态数据;
具体地,该Redis缓存中还存储有微服务系统系统当前的状态数据,由于该微服务系统系统支持灰度发布,故每一状态数据对应该灰度发布的一阶段。
在本实施例的一个优选方案中,所述灰度发布包括三个阶段,分别为:全量非灰度模式、部分灰度模式及全量灰度模式,见图2,该步骤S3具体包括:
步骤S31,基于当前的状态数据确定灰度发布当前所处的阶段;
具体地,首先根据状态数据确定灰度发布当前所处的阶段;
步骤S32,选择与确定的阶段对应的服务实例列表,得到筛选的服务实例列表;
具体地,选择与确定的阶段对应的服务实例列表,得到筛选的服务实例列表,即根据确定的阶段选择对应的服务实例列表,得到筛选的服务实例列表。
在本实施例中,灰度发布的过程如下:
在全量非灰度(全量正常)模式到部分灰度模式时,一般用户(非灰度用户)和灰度测试用户的流量会由网关根据请求携带的标记信息分别路由到正常实例和灰度实例中;灰度实例发布完成后,测试人员通过使用灰度环境测试用户可以对灰度环境的实例进行测试;灰度环境测试完成后切换到全量灰度模式,在该模式下,所有的访问请求都会路由到当前灰度实例中,即此时的任何用户的访问请求都会以该服务实例列表中的灰度实例作为筛选对象;当正常实例发布完成后,转为全量正常模式,所有用户的请求都会被路由转发到对应服务名称的任何实例,即根据服务名称来选择服务实例。
基于上述灰度发布过程的模式,该步骤S32具体为:
当所述状态数据对应的阶段为全量非灰度模式时,以所述服务实例列表中的非灰度实例列表作为所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为部分灰度模式时,从所述服务实例列表中选择与所述标记信息对应的服务实例,得到所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为全灰度模式时,以所述服务实例列表中的所有灰度实例列表作为所述筛选的服务实例列表。
步骤S33,基于负载均衡策略从所筛选的服务实例列表中选择对应的服务实例;
具体地,基于负载均衡策略从所筛选的服务实例列表中选择对应的服务实例;该负载均衡策略可以是:轮询方式、指定权重方式或IP绑定ip_hash方式,轮询方式是基于访问请求的发起时间来分配服务实例;指定权重方式是指定轮询概率,该权重和访问比率成正比,用于后端服务器性能不均的情况;IP绑定ip_hash方式,ip_hash方式是指每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
在本实施例中,还可以根据服务实例的负载情况进行相应的扩容,如同一服务名称的服务实例的访问量较大,但当前的负载已经饱和,此时需要根据需要进行负载扩容,以满足访问需求。
在本实施例中,根据微服务系统当前的状态数据从当前的服务实例列表中筛选对应的服务实例,无需修改配置,降低风险,提高访问效率。
其次,根据负载均衡策略选择最终的服务实例,可根据实际情况选择最适合的服务实例,提高访问效率。
图3示出了本发明第二实施例的微服务访问装置的结构示意图。该装置包括:接收模块31、与接收模块31连接的第一获取模块32、与第一获取模块32连接的第二获取模块33、与第二获取模块33连接的筛选模块34、与筛选模块34连接的访问模块35,其中:
接收模块31,用于接收用户的访问请求;
具体地,用户需要进行访问时,发起访问请求,该访问请求包括:地址(URL)、标记信息(Cookie),该标记信息可以是1或0,还可以是其他标记,此处对此不作限制。
第一获取模块32,用于基于访问请求获取对应的服务名称及微服务系统当前的状态数据;
具体地,基于访问请求获取对应的服务名称及微服务系统当前的状态数据,该状态数据对应灰度发布的一个阶段;
第二获取模块33,用于从注册中心获取当前的服务实例列表;
具体地,从注册中心获取当前最新的服务实例列表,该服务实例列表包括至少一个灰度服务实例及非灰度服务实例。
筛选模块34,用于基于标记信息、当前的状态数据从当前服务实例列表中筛选出对应的服务实例;
具体地,基于标记信息、当前的状态数据从当前服务实例列表中筛选出对应的服务实例;
访问模块35,用于访问筛选的服务实例;
具体地,访问筛选的服务实例,即响应所述用户的访问请求,建立该用户与所筛选的服务实例之间的连接。
在本实施例中,根据微服务系统当前的状态数据从当前的服务实例列表中筛选对应的服务实例,无需修改配置,降低风险,提高访问效率。
在本实施例的一个优选方案中,该装置还包括:
接收模块,用于接收所述注册中心周期性发送的注册信息;
具体地,注册中心会周期性地上报注册信息,该注册信息包括:网络参数(IP:port)、服务名称(serviceID)、对应的标记(mark)、更新时间点(update time)。该上报周期可根据实际情况而设,如2分钟或者其他数值,此处对此不作限制。
在本实施例的一个优选方案中,该第一获取模块32具体用于:
从缓存中获取与所述地址对应的路由规则,从所述路由规则得到对应的服务名称;
具体地,从缓存中获取与所述地址对应的路由规则,从所述路由规则得到对应的服务名称,由于Redis缓存中存储有不同的路由规则,该路由规则是表示地址与服务名称之间的映射关系,一个服务名称对应一个地址,根据该地址可以在Redis缓存中找到对应的服务名称。
从缓存中获取微服务系统当前的状态数据;
具体地,该Redis缓存中还存储有微服务系统系统当前的状态数据,由于该微服务系统系统支持灰度发布,故每一状态数据对应该灰度发布的一阶段。
在本实施例的一个优选方案中,所述灰度发布包括三个阶段,分别为:全量非灰度模式、部分灰度模式及全量灰度模式,该第二获取模块33具体用于:
基于当前的状态数据确定灰度发布当前所处的阶段;
具体地,首先根据状态数据确定灰度发布当前所处的阶段;
选择与确定的阶段对应的服务实例列表,得到筛选的服务实例列表;
具体地,选择与确定的阶段对应的服务实例列表,得到筛选的服务实例列表,即根据确定的阶段选择对应的服务实例列表,得到筛选的服务实例列表。
在本实施例中,灰度发布的过程如下:
在全量非灰度(全量正常)模式到部分灰度模式时,一般用户(非灰度用户)和灰度测试用户的流量会由网关根据请求携带的标记信息分别路由到正常实例和灰度实例中;灰度实例发布完成后,测试人员通过使用灰度环境测试用户可以对灰度环境的实例进行测试;灰度环境测试完成后切换到全量灰度模式,在该模式下,所有的访问请求都会路由到当前灰度实例中,即此时的任何用户的访问请求都会以该服务实例列表中的灰度实例作为筛选对象;当正常实例发布完成后,转为全量正常模式,所有用户的请求都会被路由转发到对应服务名称的任何实例,即根据服务名称来选择服务实例。
筛选的过程如下:当所述状态数据对应的阶段为全量非灰度模式时,以所述服务实例列表中的非灰度实例列表作为所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为部分灰度模式时,从所述服务实例列表中选择与所述标记信息对应的服务实例,得到所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为全灰度模式时,以所述服务实例列表中的所有灰度实例列表作为所述筛选的服务实例列表。
基于负载均衡策略从所筛选的服务实例列表中选择对应的服务实例;
具体地,基于负载均衡策略从所筛选的服务实例列表中选择对应的服务实例;该负载均衡策略可以是:轮询方式、指定权重方式或IP绑定哈希的方式(即IP绑定ip_hash方式),轮询方式是基于访问请求的发起时间来分配服务实例;指定权重方式是指定轮询概率,该权重和访问比率成正比,用于后端服务器性能不均的情况;IP绑定ip_hash方式是指每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
在本实施例中,还可以根据服务实例的负载情况进行相应的扩容,如同一服务名称的服务实例的访问量较大,但当前的负载已经饱和,此时需要根据需要进行负载扩容,以满足访问需求。
在本实施例中,根据微服务系统当前的状态数据从当前的服务实例列表中筛选对应的服务实例,无需修改配置,降低风险,提高访问效率。
其次,根据负载均衡策略选择最终的服务实例,可根据实际情况选择最适合的服务实例,提高访问效率。
本发明第三实施例还提供了一种微服务系统,如图4所示,该微服务系统包括:缓存41、与缓存41连接的微服务访问控制装置42、与所述微服务访问控制装置42连接的注册中心43,其中:微服务访问控制装置42可以是网关,该缓存器41为Redis缓存,存储有多个路由规则(服务名称与地址的对应关系)及状态数据(即转发模式配置信息),该状态数据可以实时更新,如该微服务系统状态变换时会更新对应的状态数据。该注册中心43包括服务实例列表,该服务实例列表包括若干服务实例。该微服务访问控制装置42的具体结构、工作原理及所带来的技术效果与上述实施例2所述的描述的一致,此处不再赘述。下面简述该微服务系统的工作原理:
微服务系统访问控制装置42接收用户的访问请求,该微服务系统访问控制装置42从Redis缓存41中获取与该访问请求对应的路由规则,从路由规则中获取对应的服务名称,然后从Redis缓存41中获取微服务系统当前的状态数据,该微服务访问控制装置42从注册中心43中获取当前的服务实例列表,根据所述状态数据确定所述灰度发布当前所处的阶段,然后根据确定的阶段选择与所述确定的阶段对应的服务实例列表,得到筛选的服务实例列表,然后基于负载均衡策略从所筛选的服务实例列表中选择对应的服务实例,建立用户与服务实例之间的连接,实现访问目的。
在本实施例中,根据微服务系统当前的状态数据从当前的服务实例列表中筛选对应的服务实例,无需修改配置,降低风险,提高访问效率。
本发明第四实施例还提供了一种计算机存储介质,所述计算机存储介质包括存储在计算机存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述第一实施例中的微服务访问控制方法。
可执行指令具体可以用于使得处理器执行以下操作:
接收用户的访问请求,所述访问请求携带标记信息;
基于所述访问请求获取对应的服务名称及微服务系统当前的状态数据,所述状态数据对应灰度发布的阶段;
从注册中心获取当前的服务实例列表;
基于所述标记信息、当前的状态数据从所述当前服务实例列表中筛选出对应的服务实例;
访问所述筛选的服务实例。
在一种可选的方式中,所述访问请求还包括对应的地址,所述可执行指令使所述处理器执行以下操作:
从缓存中获取与所述地址对应的路由规则,从所述路由规则得到对应的服务名称;
从所述缓存中获取所述微服务系统当前的状态数据。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
基于所述当前的状态数据确定所述灰度发布当前所处的阶段;
选择与所述确定的阶段对应的服务实例列表,得到筛选的服务实例列表;
基于负载均衡策略从所筛选的服务实例列表中选择对应的服务实例。
在一种可选的方式中,所述灰度发布包括三个阶段,分别为:全量非灰度模式、部分灰度模式及全量灰度模式,所述可执行指令使所述处理器执行以下操作:
当所述状态数据对应的阶段为全量非灰度模式时,以所述服务实例列表中的非灰度实例列表作为所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为部分灰度模式时,从所述服务实例列表中选择与所述标记信息对应的服务实例,得到所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为全灰度模式时,以所述服务实例列表中的所有灰度实例列表作为所述筛选的服务实例列表。
在一种可选的方式中,所述负载均衡策略包括轮询方式,所述轮询方式具体为:基于访问请求的发起时间来分配服务实例。
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
接收所述注册中心周期性发送的注册信息,所述注册信息包括:网络参数、服务名称、对应的标记、更新时间点。
图5示出了本发明第五实施例的设备的结构示意图,本发明具体实施例并不对设备的具体实现做限定。
如图5所示,该设备可以包括:处理器(processor)502、通信接口(CommunicationsInterface)504、存储器(memory)506、以及通信总线508。
其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。处理器502,用于执行程序510,具体可以执行上述第一实施例中的微服务访问控制方法的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
接收用户的访问请求,所述访问请求携带标记信息;
基于所述访问请求获取对应的服务名称及微服务系统当前的状态数据,所述状态数据对应灰度发布的阶段;
从注册中心获取当前的服务实例列表;
基于所述标记信息、当前的状态数据从所述当前服务实例列表中筛选出对应的服务实例;
访问所述筛选的服务实例。
在一种可选的方式中,所述访问请求还包括对应的地址,所述程序510使所述处理器502执行以下操作:
从缓存中获取与所述地址对应的路由规则,从所述路由规则得到对应的服务名称;
从所述缓存中获取所述微服务系统当前的状态数据。
在一种可选的方式中,所述程序510使所述处理器502执行以下操作:
基于所述当前的状态数据确定所述灰度发布当前所处的阶段;
选择与所述确定的阶段对应的服务实例列表,得到筛选的服务实例列表;
基于负载均衡策略从所筛选的服务实例列表中选择对应的服务实例。
在一种可选的方式中,所述灰度发布包括三个阶段,分别为:全量非灰度模式、部分灰度模式及全量灰度模式,所述程序510使所述处理器502执行以下操作:
当所述状态数据对应的阶段为全量非灰度模式时,以所述服务实例列表中的非灰度实例列表作为所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为部分灰度模式时,从所述服务实例列表中选择与所述标记信息对应的服务实例,得到所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为全灰度模式时,以所述服务实例列表中的所有灰度实例列表作为所述筛选的服务实例列表。
在一种可选的方式中,所述负载均衡策略包括轮询方式,所述轮询方式具体为:基于访问请求的发起时间来分配服务实例。
在一种可选的方式中,所述程序510使所述处理器502执行以下操作:
接收所述注册中心周期性发送的注册信息,所述注册信息包括:网络参数、服务名称、对应的标记、更新时间点。
在本发明中,根据微服务系统当前的状态数据从当前的服务实例列表中筛选对应的服务实例,无需修改配置,降低风险,提高访问效率。
其次,根据负载均衡策略选择最终的服务实例,可根据实际情况选择最适合的服务实例,提高访问效率。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

Claims (10)

1.一种微服务访问控制方法,其特征在于,所述方法包括:
接收用户的访问请求,所述访问请求携带标记信息;
基于所述访问请求获取对应的服务名称及微服务系统当前的状态数据,所述状态数据对应灰度发布的阶段;
从注册中心获取当前的服务实例列表;
基于所述标记信息、当前的状态数据从所述当前服务实例列表中筛选出对应的服务实例;
访问所述筛选的服务实例。
2.如权利要求1所述的方法,其特征在于,所述访问请求还包括对应的地址,所述基于所述访问请求获取对应的服务名称及微服务系统当前的状态数据,包括:
从缓存中获取与所述地址对应的路由规则,从所述路由规则得到对应的服务名称;
从所述缓存中获取所述微服务系统当前的状态数据。
3.如权利要求1所述的方法,其特征在于,所述基于所述标记信息、当前态的状态数据从所述当前服务实例列表中筛选出对应的服务实例,包括:
基于所述当前的状态数据确定所述灰度发布当前所处的阶段;
选择与所述确定的阶段对应的服务实例列表,得到筛选的服务实例列表;
基于负载均衡策略从所筛选的服务实例列表中选择对应的服务实例。
4.如权利要求3所述的方法,其特征在于,所述灰度发布包括三个阶段,分别为:全量非灰度模式、部分灰度模式及全量灰度模式,所述选择与所述确定的阶段对应的服务实例列表,得到筛选的服务实例列表,包括:
当所述状态数据对应的阶段为全量非灰度模式时,以所述服务实例列表中的非灰度实例列表作为所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为部分灰度模式时,从所述服务实例列表中选择与所述标记信息对应的服务实例,得到所述筛选的服务实例列表;或者
当所述状态数据对应的阶段为全灰度模式时,以所述服务实例列表中的所有灰度实例列表作为所述筛选的服务实例列表。
5.如权利要求3所述的方法,其特征在于,所述负载均衡策略包括轮询方式,所述轮询方式具体为:基于访问请求的发起时间来分配服务实例。
6.如权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:
接收所述注册中心周期性发送的注册信息,所述注册信息包括:网络参数、服务名称、对应的标记、更新时间点。
7.一种微服务访问控制装置,其特征在于,包括:
接收模块,用于接收用户的访问请求,所述访问请求携带标记信息;
第一获取模块,用于基于所述访问请求获取对应的服务名称及当前的微服务系统当前的状态数据,所述状态数据对应灰度发布的阶段;
第二获取模块,用于从注册中心获取当前的服务实例列表;
筛选模块,用于基于所述标记信息、当前的状态数据从所述当前服务实例列表中筛选出对应的服务实例;
访问模块,用于访问所述筛选的服务实例。
8.一种微服务系统,其特征在于,包括:缓存、注册中心,还包括如权利要求7所述的微服务访问控制装置,其中,所述缓存、注册中心均分别与所述微服务访问控制装置连接。
9.一种设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行根据权利要求1-6任一项所述微服务访问控制方法的步骤。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行根据权利要求1-6任一项所述微服务访问控制方法的步骤。
CN202010090382.7A 2020-02-13 2020-02-13 微服务访问控制方法及装置、微服务系统 Active CN113259146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010090382.7A CN113259146B (zh) 2020-02-13 2020-02-13 微服务访问控制方法及装置、微服务系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010090382.7A CN113259146B (zh) 2020-02-13 2020-02-13 微服务访问控制方法及装置、微服务系统

Publications (2)

Publication Number Publication Date
CN113259146A CN113259146A (zh) 2021-08-13
CN113259146B true CN113259146B (zh) 2022-06-10

Family

ID=77219880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010090382.7A Active CN113259146B (zh) 2020-02-13 2020-02-13 微服务访问控制方法及装置、微服务系统

Country Status (1)

Country Link
CN (1) CN113259146B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113965538B (zh) * 2021-10-21 2023-04-18 青岛海信智慧生活科技股份有限公司 设备状态消息处理方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102427480A (zh) * 2011-12-31 2012-04-25 北京新媒传信科技有限公司 一种多应用服务平台系统中的应用访问方法
CN102497454A (zh) * 2011-12-31 2012-06-13 北京新媒传信科技有限公司 一种在应用服务平台系统中对应用进行灰度发布的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671462B2 (en) * 2018-07-24 2020-06-02 Cisco Technology, Inc. System and method for message management across a network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102427480A (zh) * 2011-12-31 2012-04-25 北京新媒传信科技有限公司 一种多应用服务平台系统中的应用访问方法
CN102497454A (zh) * 2011-12-31 2012-06-13 北京新媒传信科技有限公司 一种在应用服务平台系统中对应用进行灰度发布的方法

Also Published As

Publication number Publication date
CN113259146A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN112087325B (zh) 灰度发布方法、装置、设备及可读存储介质
US8756298B2 (en) System for automatic configuration of computers in a server farm
EP2321937B1 (en) Load balancing for services
US20210410057A1 (en) Service Discovery Extension in a 5G Mobile Communication Network
EP1728160B1 (en) Anomaly management scheme for a multi-agent system
US20220261275A1 (en) Self-evolving microservices
CN109104368B (zh) 一种请求连接方法、装置、服务器及计算机可读存储介质
CN109618003B (zh) 一种服务器规划方法、服务器及存储介质
CN115174669B (zh) 一种靶场环境中虚拟机分布式代理接入方法与系统
CN112953982A (zh) 一种服务处理的方法、服务配置的方法以及相关装置
CN113259146B (zh) 微服务访问控制方法及装置、微服务系统
CN114064062B (zh) 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置
CN100563263C (zh) 在网络存储业务中实现系统高可用性的方法和系统
CN108737591A (zh) 一种服务配置的方法及装置
US11805422B2 (en) AP deployment in a network comprising a centralized system and a distributed system
CN114615320B (zh) 服务治理方法、装置、电子设备及计算机可读存储介质
US11736591B2 (en) Method for operating a distributed application
EP1895417A1 (en) Data storage system and method for testing new applications
CN112751944A (zh) 一种流数据加速方法、服务器和负载均衡设备
CN111294250B (zh) 压力测试方法、装置和系统
US11546405B2 (en) Methods for exposing mainframe data as a web service and devices thereof
CA2986758C (en) Systems and methods for server failover and load balancing
CN112187816B (zh) Rpc请求处理方法、设备和存储介质
CN117221114A (zh) 业务网关部署方法、装置、设备及存储介质
CN110138872B (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
TR01 Transfer of patent right

Effective date of registration: 20231211

Address after: No.19, Jiefang East Road, Hangzhou, Zhejiang Province, 310000

Patentee after: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd.

Patentee after: China Mobile (Zhejiang) Innovation Research Institute Co.,Ltd.

Patentee after: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.

Address before: No. 19, Jiefang East Road, Hangzhou, Zhejiang Province, 310016

Patentee before: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd.

Patentee before: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.

TR01 Transfer of patent right