CN114363403A - 服务访问方法、系统、计算机设备和存储介质 - Google Patents

服务访问方法、系统、计算机设备和存储介质 Download PDF

Info

Publication number
CN114363403A
CN114363403A CN202111627331.4A CN202111627331A CN114363403A CN 114363403 A CN114363403 A CN 114363403A CN 202111627331 A CN202111627331 A CN 202111627331A CN 114363403 A CN114363403 A CN 114363403A
Authority
CN
China
Prior art keywords
instance
service
target
access
gateway
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
CN202111627331.4A
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.)
Kingdee Medical Software Technology Co ltd
Original Assignee
Kingdee Medical Software Technology 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 Kingdee Medical Software Technology Co ltd filed Critical Kingdee Medical Software Technology Co ltd
Priority to CN202111627331.4A priority Critical patent/CN114363403A/zh
Publication of CN114363403A publication Critical patent/CN114363403A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请涉及一种服务访问方法、系统、计算机设备和存储介质。该方法包括:获取服务的多个实例发送的接口注册请求,并基于接口注册请求获取多个实例相应的接口信息;接口信息中包括实例相应的访问路径,多个实例部署在容器中;针对多个实例中的每个实例,将实例相应的接口信息存储到实例的元数据中,以完成接口注册;在接收到针对服务的访问请求后,确认访问请求指定的目标访问路径;将目标访问路径和目标元数据中的访问路径匹配;目标元数据,是服务的多个实例的元数据;确定匹配到的访问路径所对应的目标实例的接口信息;基于目标实例的接口信息将访问请求路由至服务的目标实例,以对服务进行访问。本方法能够提高服务访问灵活性。

Description

服务访问方法、系统、计算机设备和存储介质
技术领域
本申请涉及软件技术领域,特别是涉及一种服务访问方法、系统、装置、计算机设备和存储介质。
背景技术
随着软件技术的发展,面向服务的体系结构已经逐渐成为IT集成的主流技术,企业服务总线是构建基于面向服务体系结构解决方案时所使用基础架构的关键部分,是由中间件技术实现的一组基础架构功能,为更复杂的架构提供基本的服务。
从一般意义上来说,企业服务总线可以看作是一种管理应用程序和服务访问的机制,它通过网络或基于形式的客户端前端为最终用户提供一个单一、简单和一致的接口,并提供基础的服务供访问。
通常情况下,为了保证对服务访问的安全性,服务一般部署于容器环境中。这样一来,在容器环境下的服务就存在难以被外部访问的问题,过于局限。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高服务访问灵活性的服务访问方法、系统、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种服务访问方法。所述方法包括:
服务管理中心获取服务的多个实例发送的接口注册请求,并基于所述接口注册请求获取多个实例相应的接口信息;所述接口信息中包括所述实例相应的访问路径;所述多个实例部署在容器中;
针对所述多个实例中的每个实例,所述服务管理中心将所述实例相应的接口信息存储到服务发现中心中的所述实例的元数据中,以完成接口注册;
在网关接收到针对所述服务的访问请求后,通过所述网关确认所述访问请求指定的目标访问路径;
所述网关将所述目标访问路径和目标元数据中的访问路径匹配;所述目标元数据,是所述服务发现中心中的所述服务的实例的元数据;
所述网关确定匹配到的访问路径所对应的目标实例的接口信息;
所述网关基于所述目标实例的接口信息将所述访问请求路由至所述服务的所述目标实例,以对所述服务进行访问。
在其中一个实施例中,所述方法还包括:
针对所述多个实例中的任意一个实例,执行以下处理:
所述服务管理中心判断所述任意一个实例是否订阅上线监听事件;
若所述任意一个实例未订阅上线监听事件,则所述服务管理中心为所述任意一个实例向所述服务发现中心订阅上线监听事件;
所述服务发现中心基于订阅的所述上线监听事件对所述任意一个实例进行上线状态监听;
所述服务发现中心在监听到所述实例处于上线状态后,向所述服务管理中心发送上线通知。
在其中一个实施例中,所述上线通知是所述服务发现中心在监听到所述实例失联后重新上线的情况下,向所述服务管理中心发送的;所述方法还包括:
针对所述多个实例中的任意一个实例,执行以下处理:
将所述任意一个实例的互联网协议地址和所述任意一个实例的接口信息一一对应存储到所述服务管理中心的数据库中;
所述服务管理中心在所述任意一个实例重新上线后,将所述数据库中与所述互联网协议地址对应的所述接口信息,恢复至所述任意一个实例的元数据中。
在其中一个实施例中,所述网关将所述目标访问路径和目标元数据中的访问路径匹配包括:
所述网关对所述目标元数据进行遍历,将所述目标访问路径和遍历到的元数据中的访问路径进行匹配;
所述方法还包括:
所述网关确定符合匹配要求的访问路径所属的实例,得到实例集合;
根据路由策略从所述实例集合中选取目标实例。
在其中一个实施例中,所述目标实例的接口信息包括所述目标实例相应的访问端口和访问路径;所述网关将所述访问请求路由至所述服务的所述第二目标实例,以对所述服务进行访问包括:
所述网关根据所述目标实例相应的互联网协议地址、访问端口和访问路径将所述访问请求路由至所述目标实例,以对所述服务进行访问。
在其中一个实施例中,所述在网关接收到针对所述服务的访问请求后,通过所述网关确认所述访问请求指定的目标访问路径包括:
在网关接收到针对所述服务的访问请求后,所述网关获取发送所述访问请求所使用的请求地址;
所述网关从所述请求地址中提取出目标访问路径。7、根据权利要求1至6任一项所述的方法,其特征在于,所述目标元数据,是所述服务发现中心中所述服务的已上线的实例的元数据。
第二方面,本申请还提供了一种服务访问系统。所述系统包括:服务管理中心和网关;
所述服务管理中心,用于获取服务的多个实例发送的接口注册请求,并基于所述接口注册请求获取多个实例相应的接口信息;所述接口信息中包括所述实例相应的访问路径;所述多个实例部署在容器中;针对所述多个实例中的每个实例,将所述实例相应的接口信息存储到服务发现中心中的所述实例的元数据中,以完成接口注册;
所述网关,用于在接收到针对所述服务的访问请求后,确认所述访问请求指定的目标访问路径;将所述目标访问路径和目标元数据中的访问路径匹配;所述目标元数据,是所述服务发现中心中的所述服务的实例的元数据;确定匹配到的访问路径所对应的目标实例的接口信息;基于所述目标实例的接口信息将所述访问请求路由至所述服务的所述目标实例,以对所述服务进行访问。
第三方面,本申请提供了一种服务访问装置。所述装置包括:
获取模块,用于获取服务的多个实例发送的接口注册请求,并基于所述接口注册请求获取多个实例相应的接口信息;所述接口信息中包括所述实例相应的访问路径;所述多个实例部署在容器中;
存储模块,用于针对所述多个实例中的每个实例,将所述实例相应的接口信息存储到所述实例的元数据中,以完成接口注册;
确认模块,用于在接收到针对所述服务的访问请求后,确认所述访问请求指定的目标访问路径;
匹配模块,用于将所述目标访问路径和目标元数据中的访问路径匹配;所述目标元数据,是所述服务的实例的元数据;
所述匹配模块,还用于确定匹配到的访问路径所对应的目标实例的接口信息;
路由模块,用于基于所述目标实例的接口信息将所述访问请求路由至所述服务的所述目标实例,以对所述服务进行访问。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述服务访问方法的步骤。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述服务访问方法的步骤。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述服务访问方法的步骤。
上述服务访问方法、系统、装置、计算机设备、存储介质和计算机程序产品,通过服务管理中心获取服务的多个实例发送的接口注册请求,并基于所述接口注册请求获取多个实例相应的接口信息;所述接口信息中包括所述实例相应的访问路径。所述多个实例部署在容器中。针对多个实例中的每个实例,所述服务管理中心将所述实例相应的接口信息存储到服务发现中心中的所述实例的元数据中,以完成接口注册。这样一来,实例就可以通过接口注册请求主动发布接口信息并存储接口信息。在网关接收到针对所述服务的访问请求后,通过所述网关确认所述访问请求指定的目标访问路径;将所述目标访问路径和目标元数据中的访问路径匹配;所述目标元数据,是所述服务发现中心中的所述服务的实例的元数据。确定匹配到的访问路径所对应的目标实例的接口信息;以使得网关获取到需要的接口信息。所述网关基于所述目标实例的接口信息将所述访问请求路由至所述服务的所述目标实例,以对所述服务进行访问。因此,通过服务的实例主动发起接口注册请求,通过服务管理中心使服务发现中心对接口信息进行存储和管理,以使得网关可以获取到各个实例接口信息,从而基于实例的接口信息去访问服务的实例,进而解决服务难以被外部访问的问题,提高了服务访问的灵活性。
附图说明
图1为一个实施例中服务访问方法的应用环境图;
图2为一个实施例中服务访问方法的流程示意图;
图3为一个实施例中服务访问方法的流程示意图;
图4为一个实施例中服务访问方法的流程示意图;
图5为一个实施例中服务访问方法的流程示意图;
图6为一个实施例中服务访问系统的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的服务访问方法可以由计算机设备实现,计算机设备可以实施为终端以及服务器中的至少之一,其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
例如,本申请提供的服务访问方法可以应用于如图1所示的应用环境中。其中,服务管理中心110通过网络与服务发现中心120进行通信,网关130通过网络与服务发现中心120进行通信,实例所在的实例运行设备140通过网络与服务管理中心110、服务发现中心120和网关130进行通信。其中,服务管理中心110、服务发现中心120、网关130和实例运行设备140可以用独立的服务器或者终端或者是多个服务器组成的服务器集群来实现。可以理解,实例运行设备140可以运行一个服务的至少一个实例,也可以同时运行不同服务的至少一个实例,对此不做限定。
实例运行设备140中的服务的多个实例向服务管理中心110发送接口注册请求,服务管理中心110获取到接口注册请求,并基于接口注册请求获取多个实例相应的接口信息;接口信息中包括实例相应的访问路径,多个实例部署在容器中。针对多个实例中的每个实例,服务管理中心110将实例相应的接口信息存储到服务发现中心120中的实例的元数据中。在网关130接收到针对服务的访问请求后,网关130确认访问请求指定的目标访问路径。网关130将目标访问路径和目标元数据中的访问路径匹配。其中,目标元数据是服务发现中心120中的服务的实例的元数据。网关130确定匹配到的访问路径所对应的目标实例的接口信息。网关130基于目标实例的接口信息将访问请求路由至服务的目标实例(即路由至实例运行设备140中的服务的目标实例),以对服务进行访问。
在一个实施例中,服务管理中心、服务发现中心以及网关可以构成服务平台(如技术中台),用于提供服务访问的功能。
值得说明的是,上述的服务管理中心、服务发现中心以及网关并不构成对本申请实施例的限定,在实际应用场景中,还可能存在其他的架构来实现本申请实施例的方案。例如,可以对服务管理中心、服务发现中心以及网关进行进一步拆分,又例如,可以将服务管理中心以及服务发现中心合为一体。
在一个实施例中,如图2所示,提供了一种服务访问方法,本实施例以该方法应用于服务管理中心和网关进行举例说明。可以理解的是,服务管理中心和网关可以是终端,也可以是服务器,还可以是包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
S202,服务管理中心获取服务的多个实例发送的接口注册请求,并基于接口注册请求获取多个实例相应的接口信息;接口信息中包括实例相应的访问路径,多个实例部署在容器中;。
其中,实例是计算机资源中虚拟出来的一块独立计算单元,用于实现服务的功能。接口信息用于调用服务所发布的接口。访问路径是用于访问服务的路径。实例相应的访问路径可以理解为实例所属的服务的访问路径。服务管理中心是可以对服务进行管理的软件程序。
在一个实施例中,服务的访问路径可以包括服务的访问短路径。访问短路径可以是针对服务的请求地址中的、且能够标识服务的部分信息。可以理解,针对服务的请求地址相当于一个用于访问服务的完整路径信息,在该请求地址中除了包括能够标识服务的访问短路径以外,还可能包括域名等其他信息,本申请可以只确定出能够标识服务的访问短路径,基于访问短路径来实现本申请的方案即可。
具体地,服务的多个实例向服务管理中心发送接口注册请求,服务管理中心获取服务的多个实例发送的接口注册请求,并基于接口注册请求获取多个实例相应的接口信息;该接口信息中包括实例相应的用于访问实例所属服务的访问路径。上述的多个实例可以是服务的全部实例,也可以是服务的部分实例,并且部署在容器中。
在一个实施例中,服务管理中心可以是对服务进行管理的目标微服务,由该目标微服务的至少一个实例接收服务的实例所发送的接口注册请求。
在一个实施例中,服务可以是集成服务,该集成服务是基于camel(一个基于规则的路由和媒介引擎)进行低代码开发得到的。
在一个实施例中,访问路径可以由统一资源标志符(Uniform ResourceIdentifier,URI)生成。
在另一个实施例中,访问路径可以由统一资源定位符(Uniform ResourceLocator,URL)生成。
在一个实施例中,接口注册请求中携带接口信息。服务管理中心可以从接口注册请求中得到接口信息。
在一个实施例中,通过接口注册请求注册的接口可以是http(Hyper TextTransfer Protocol,超文本传输协议)/soap(Simple Object Access Protocol,简单对象访问协议)接口,但并不限于此。实例注册的接口为http接口时,可以使用http协议对实例进行访问,实例注册的接口为soap接口时,可以使用soap协议对实例进行访问。注册接口的过程包括将接口信息进行存储和管理的过程。使用注册的接口访问实例的过程,可以理解为以注册的接口所属的通信协议作为访问实例的通信协议,并使用接口信息访问实例的过程。在接口被注册后,访问服务的设备按照对应的通信协议访问实例,不需要关注接口信息的全部内容,从而提高访问实例的安全性、灵活性和规范性、即提高访问实例所属服务的安全性、灵活性和规范性。
S204,针对多个实例中的每个实例,服务管理中心将实例相应的接口信息存储到服务发现中心中的实例的元数据中。
其中,服务发现中心是用于记录分布式系统中的全部服务的信息,以便其他服务能够快速的找到这些已注册的服务。元数据,又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
具体地,针对多个实例中的每个实例,服务管理中心与服务发现中心通讯,将实例相应的接口信息存储到服务发现中心中的该实例的元数据中。
在一个实施例中,服务管理中心向服务发现中心订阅针对实例的上线监听事件,以获取实例上线通知。
在一个实施例中,服务管理中心通过服务发现中心确认实例失联又重新上线时,将数据库中存储的接口信息恢复至服务发现中心的实例的元数据中。
S206,在网关接收到针对服务的访问请求后,通过网关确认访问请求指定的目标访问路径;将目标访问路径和目标元数据中的访问路径匹配;目标元数据,是服务发现中心中的服务的实例的元数据;确定匹配到的访问路径所对应的目标实例的接口信息。
可以理解,网关可以用来保护、增强和控制对于服务的访问。
具体地,访问服务的设备发送访问请求给网关,网关接收到该访问请求后,网关可以获取该访问请求所指定的目标访问路径。网关从服务发现中心获取服务的实例的元数据并确认为目标元数据。网关将目标访问路径和目标元数据中的访问路径进行匹配。若匹配成功,网关可以从目标元数据中获取匹配到的访问路径所对应的目标实例的接口信息,这里的匹配成功可以是指相同。
在一个实施例中,网关确定符合匹配要求的访问路径所属的实例,得到实例集合,并根据路由策略从实例集合中确认出目标实例。
在一个实施例中,网关获取发送访问请求所使用的请求地址,基于请求地址获取访问请求所指定的目标访问路径。
S208,网关基于目标实例的接口信息将访问请求路由至服务的目标实例,以对服务进行访问。
具体地,网关基于目标实例的接口信息,将访问请求路由至服务的目标实例,对该目标实例进行访问、即对该目标实例所属的服务进行访问。
在一个实施例中,接口信息包括端口和访问路径,网关基于目标实例对应的互联网协议地址、访问端口和访问路径对目标实例进行访问。
在一个实施例中,方法还包括:服务管理中心判断实例是否订阅上线监听事件;若实例未订阅上线监听事件,服务管理中心则向服务发现中心订阅针对实例的上线监听事件;服务发现中心基于订阅的上线监听事件对实例进行上线状态监听;服务发现中心在监听到实例处于上线状态后,向服务管理中心发送上线通知。
其中,订阅上线监听事件是用于让服务发现中心等待实例上线事件的发生,当这个实例上线事件发生之后,服务发现中心通知订阅者该实例上线。
具体地,对于服务的多个实例中的每个实例,服务管理中心判断实例是否订阅上线监听事件。若该实例未订阅上线监听事件,服务管理中心向服务发现中心订阅该实例的上线监听事件。服务发现中心根据订阅的上线监听事件,对该实例进行上线状态监听。该实例上线后,服务发现中心监听到该实例处于上线状态,向服务管理中心发送上线通知。上线通知可以用于触发服务管理中心基于实例的接口注册请求,获取实例相应的接口信息。
在本实施例中,服务管理中心针对实例订阅上线监听事件,以使得在实例上线时,服务发现中心可以获取到上线通知,启动对该实例的上线处理流程。这样,服务管理中心在服务发现中心的辅助下,完成了对该实例的上线处理流程,从而减少重复代码开发和维护,减少服务管理中心所在的设备的计算机资源的开销。
上述服务访问方法,通过服务管理中心获取服务的多个实例发送的接口注册请求,并基于接口注册请求获取多个实例相应的接口信息;接口信息中包括实例相应的访问路径。所述多个实例部署在容器中。针对多个实例中的每个实例,服务管理中心将实例相应的接口信息存储到服务发现中心中的实例的元数据中,以完成接口注册。这样一来,实例就可以通过接口注册请求主动发布接口信息并存储接口信息。在网关接收到针对服务的访问请求后,通过网关确认访问请求指定的目标访问路径;将目标访问路径和目标元数据中的访问路径匹配;目标元数据,是服务发现中心中的服务的实例的元数据。确定匹配到的访问路径所对应的目标实例的接口信息;以使得网关获取到需要的接口信息。网关基于目标实例的接口信息将访问请求路由至服务的目标实例,以对服务进行访问。因此,通过服务的实例主动发起接口注册请求,通过服务管理中心使服务发现中心对接口信息进行存储和管理,以使得网关可以获取到各个实例接口信息,从而基于实例的接口信息去访问服务的实例,进而解决服务难以被外部访问的问题,提高了服务访问的灵活性。
在一个实施例中,还包括:服务管理中心将实例的互联网协议地址和实例的接口信息一一对应存储到服务管理中心的数据库中;服务发现中心在监听到实例失联后重新上线时,向服务管理中心发送上线通知;服务管理中心根据上线通知,将数据库中与实例的互联网协议地址对应的接口信息,恢复至服务发现中心的实例的元数据中。
具体地,服务管理中心将实例的互联网协议地址和实例的接口信息一一对应存储于服务管理中心所使用的数据库中。在实例失联后又重新上线的情况下,服务发现中心监听到该实例重新上线。根据订阅的上线监听事件,服务发现中心向服务管理中心发送上线通知。服务管理中心基于上线通知,确认该实例失联后又重新上线,并确认该实例的互联网协议地址。服务管理中心根据该实例的互联网协议地址,从数据库中获取该实例的接口信息。服务管理中心将该实例的接口信息恢复至服务发现中心的实例的元数据中。
在本实施例中,服务管理中心可以在实例失联又上线的情况下,将数据库中存储的实例的接口信息恢复至服务发现中心的实例的元数据中。这样,在实例所在的设备失联又重启后,可以自动恢复实例元数据,从而避免了接口信息的丢失,保证网关能够获取到该实例的接口信息,从而保证对服务的访问的可靠性。
在一个实施例中,如图3所示,展示了服务管理中心管理数据库的部分流程。具体地,服务管理中心获取到服务的实例的接口注册请求。服务管理中心判断该实例是否已订阅上线监听事件。若未订阅上线监听事件,则为该实例订阅上线监听事件。服务管理中心从接口注册请求中获取到访问路径,并作为接口信息存储到服务发现中心的实例的元数据中,其中,还可以从接口注册请求中获取访问端口,并与访问路径一并作为接口信息进行存储。服务管理中心判断数据库是否已经存储该接口信息(图3中以访问路径为例),若未存储,则新增数据库记录以记录新的接口信息,若已存储该接口信息,则更新数据库记录以更新该接口信息的存储时间。
在一个实施例中,如图4所示,展示了服务管理中心恢复实例元数据的流程。具体地,服务管理中心确认实例上线后,根据实例对应的互联网协议地址查询数据库是否存储该实例接口信息。若已存储实例接口信息,进一步判断实例是否失联。若该实例失联,则将实例接口信息恢复到实例的元数据中。
在一个实施例中,将目标访问路径和目标元数据中的访问路径匹配包括:网关从服务发现中心获取服务的多个实例的元数据;对多个实例的元数据进行遍历,将目标访问路径和遍历到的元数据中的访问路径进行匹配;确定符合匹配要求的访问路径所属的实例,得到实例集合;网关根据路由策略从实例集合中选取目标实例。
具体地,网关从服务发现中心获取服务的多个实例的元数据后,对多个实例的元数据进行遍历,将目标访问路径和遍历到的元数据中的短路径进行匹配。若匹配成功,则确定匹配成功的访问路径所属的实例,将实例放入集合中,从而得到最终的实例集合。网关根据路由策略从实例集合中选取一个实例,作为目标实例。
在一个实施例中,路由策略是由客户端负载均衡组件实现的,网关使用该客户端负载均衡组件所实现的路由策略来选择目标实例进行路由,从而实现负载均衡。其中,客户端负载均衡组件,是微服务框架中用于实现客户端负载均衡的组件。微服务框架可以提供自定义的管理对象,以使用自定义的管理对象来进行路径匹配,以得到实例集合。可以理解,自定义的管理对象得到实例集合后,客户端负载均衡组件可以基于路由策略从实例集合中选择目标实例,从而实现负载均衡处理。
具体地,自定义的管理对象可以基于访问请求获取到访问请求指定的目标访问路径。自定义的管理对象获取到服务的所有实例,并对所有实例进行遍历。自定义的管理对象获取实例的元数据,将元数据中的访问路径和目标访问路径进行匹配,若匹配成功,将该实例放入可选列表中。直到遍历完成后,自定义的管理对象可以得到最终的可选列表,即,实例集合。客户端负载均衡组件可以从该实例集合中根据路由策略选择一个实例作为目标实例进行路由,从而实现对服务的访问。
在一个实施例中,微服务框架可以是Spring Cloud。Spring Cloud是一种致力于分布式系统、云服务的框架。负载均衡组件为微服务框架Spring Cloud中用于实现客户端负载均衡的Ribbon组件。自定义的管理对象可以是bean。可以理解,凡是需要在容器中进行管理的对象都在xml里定义为一个bean。
在本实施例中,网关得到实例集合后,根据路由策略从实例集合中确认出目标实例,利用了网关的鉴权,流控,负载均衡等现有功能,提高对服务访问的可用性以及安全性。
在一个实施例中,目标实例的接口信息包括目标实例相应的访问端口和访问路径;网关基于目标实例的接口信息将访问请求路由至服务中目标实例,以对服务进行访问包括:网关根据目标实例相应的互联网协议地址、访问端口和访问路径将访问请求路由至目标实例,以对服务进行访问。
在一个实施例中,一个实例对应包括至少一个端口和至少一个访问路径。
具体地,目标实例的接口包括目标实例相应的访问端口和访问路径。网关根据目标实例相应的互联网协议地址、访问端口和访问路径将访问请求路由到目标实例,以对目标实例进行访问、即对目标实例所属的服务进行访问。
在本实施例中,网关获取访问端口和访问路径后,基于实例对应的互联网协议地址、访问端口和访问路径来访问目标实例。这样,访问服务的设备不需要关注访问端口和实例的互联网协议地址,而是由网关来获取访问端口并进行路由。在实例的端口发生变化或者实例的端口有多个的情况下,访问服务的设备不需要有任何的处理,就能访问到服务的实例,以使得对服务的访问具备灵活性,并以动态路由的方式访问服务。并且,针对运行于容器环境中的服务,解决了在容器环境下的服务难以被外部访问的问题,并且不需要做其他的端口映射,解决了容器环境对外网的端口开放问题。
在一个实施例中,在网关接收到针对服务的访问请求后,通过网关确认访问请求指定的目标访问路径包括:在网关接收到针对服务的访问请求后,获取发送访问请求所使用的请求地址;从请求地址中提取出目标访问路径。
在一个实施例中,访问服务的设备通过http(超文本传输协议)通讯协议,发送访问请求给网关。
在一个实施例中,请求地址可以由统一资源定位符(Uniform Resource Locator,URL)生成。
具体地,访问服务的访问端发送访问请求给网关,网关接收到针对服务的访问请求后,网关获取发送该访问请求所使用的请求地址,并从请求地址中提取出目标访问路径。
在本实施例中,通过获取访问端发送的访问请求所使用的请求地址;从请求地址中提取出目标访问路径,以使得在目标访问路径发生变化时,访问端只需要修改请求地址。网关从请求地址中提取出目标访问路径,以使得网关可以简易地获取到目标访问路径,从而进一步提高对服务访问的灵活性。
在一个实施例中,目标元数据,是服务发现中心中服务的已上线的实例的元数据。
具体地,服务的实例上线时,会通知服务发现中心,因此服务发现中心能确认上线的实例。网关从服务发现中心获取的目标元数据,是服务发现中心确认已上线的服务的实例的元数据。可以理解,通过服务发现中心对实例是否上线的进一步判断,以使得网关获取到的目标元数据所对应的实例是上线的实例,下线或者失联的实例的元数据不会被网关获取,从而保证了网关基于目标元数据中得到的目标实例是上线的。因此保证了路由的准确性。
在一个实施例中,服务的多个实例向服务管理中心发送接口注册请求,服务管理中心获取服务的多个实例发送的接口注册请求,并基于接口注册请求获取多个实例相应的接口信息;接口信息中包括实例相应的访问路径。针对多个实例,服务管理中心将实例相应的接口信息存储到服务发现中心中的实例的元数据中,并订阅上线监听事件,以收到实例上线通知。服务管理中心在实例失联又重启上线的情况下,可以将数据库中存储的接口信息恢复到服务发现中心的实例的元数据中。在网关接收到针对服务的访问请求后,通过网关确认访问请求指定的目标访问路径。其中,网关可以从发送访问请求所使用的请求地址提取出目标访问路径。网关将目标访问路径和目标元数据中的访问路径匹配;其中,目标元数据是服务发现中心中的服务的多个实例的元数据。网关根据匹配的访问路径获取匹配的实例的集合,并从该集成中根据路由策略确认出一个目标实例。网关确定匹配到的访问路径所对应的目标实例的接口信息。网关基于目标实例对应的端口、访问路径和互联网协议地址将访问请求路由至服务的目标实例,以对目标实例所属的服务进行访问。
应该理解的是,虽然本申请部分实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的服务访问方法的服务访问系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个系统实施例中的具体限定可以参见上文中对于服务访问方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种服务访问系统600,包括:服务管理中心602和网关604,其中:
服务管理中心602,用于获取服务的多个实例发送的接口注册请求,并基于接口注册请求获取多个实例相应的接口信息;接口信息中包括实例相应的访问路径,多个实例部署在容器中;针对多个实例中的每个实例,服务管理中心602将实例相应的接口信息存储到服务发现中心中的实例的元数据中,以完成接口注册。
网关604,用于在网关604接收到针对服务的访问请求后,通过网关确认访问请求指定的目标访问路径;将目标访问路径和目标元数据中的访问路径匹配;目标元数据,是所述服务发现中心中的实例的元数据;确定匹配到的访问路径所对应的目标实例的接口信息;网关604基于目标实例的接口信息将访问请求路由至服务的目标实例,以对服务进行访问。
在一个实施例中,服务管理中心602还用于判断实例是否订阅上线监听事件;若实例未订阅上线监听事件,服务管理中心602则向服务发现中心订阅针对实例的上线监听事件;服务发现中心基于订阅的上线监听事件对实例进行上线状态监听;服务发现中心在监听到实例处于上线状态后,向服务管理中心602发送上线通知。
在一个实施例中,上线通知是服务发现中心在监听到实例失联后重新上线的情况下,向服务管理中心发送的。服务管理中心602还用于将实例的互联网协议地址和实例的接口信息一一对应存储到服务管理中心602的数据库中;服务发现中心还用于监听到实例失联后重新上线的情况下,向服务管理中心602发送上线通知;服务管理中心602在接收到上线通知后,将数据库中与互联网协议地址对应的接口信息,恢复至服务发现中心的实例的元数据中。
在一个实施例中,网关604还用于对目标元数据进行遍历,将目标访问路径和多个实例的元数据中的访问路径进行匹配;确定符合匹配要求的访问路径所属的实例,得到实例集合;根据路由策略从实例集合中选取目标实例。
在一个实施例中,目标实例的接口信息包括目标实例相应的访问端口和访问路径;网关604还用于根据目标实例相应的互联网协议地址、访问端口和访问路径将访问请求路由至目标实例,以对服务进行访问。
在一个实施例中,网关604还用于在网关604接收到针对服务的访问请求后,获取发送访问请求所使用的请求地址;从请求地址中提取出目标访问路径。
上述服务访问系统,通过服务管理中心获取服务的多个实例发送的接口注册请求,并基于接口注册请求获取多个实例相应的接口信息;接口信息中包括实例相应的访问路径。所述多个实例部署在容器中。针对多个实例中的每个实例,服务管理中心将实例相应的接口信息存储到服务发现中心中的实例的元数据中,以完成接口注册。这样一来,实例就可以通过接口注册请求主动发布接口信息并存储接口信息。在网关接收到针对服务的访问请求后,通过网关确认访问请求指定的目标访问路径;将目标访问路径和目标元数据中的访问路径匹配;目标元数据,是服务发现中心中的服务的实例的元数据。确定匹配到的访问路径所对应的目标实例的接口信息;以使得网关获取到需要的接口信息。网关基于目标实例的接口信息将访问请求路由至服务的目标实例,以对服务进行访问。因此,通过服务的实例主动发起接口注册请求,通过服务管理中心使服务发现中心对接口信息进行存储和管理,以使得网关可以获取到各个实例接口信息,从而基于实例的接口信息去访问服务的实例,进而解决服务难以被外部访问的问题,提高了服务访问的灵活性。
关于上述服务访问系统的具体限定可以参见上文中对于上述服务访问的限定,在此不再赘述。上述服务访问系统中的各个设备可全部或部分通过软件、硬件及其组合来实现。上述各设备可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个设备对应的操作。
在一个实施例中,提供了一种服务访问装置,包括:
获取模块,用于获取服务的多个实例发送的接口注册请求,并基于接口注册请求获取多个实例相应的接口信息;接口信息中包括实例相应的访问路径;所述多个实例部署在容器中;
存储模块,用于针对多个实例中的每个实例,将实例相应的接口信息存储到实例的元数据中,以完成接口注册;
确认模块,用于在接收到针对服务的访问请求后,确认访问请求指定的目标访问路径;
匹配模块,用于将目标访问路径和目标元数据中的访问路径匹配;目标元数据,是服务的实例的元数据;
匹配模块,还用于确定匹配到的访问路径所对应的目标实例的接口信息;
路由模块,用于基于目标实例的接口信息将访问请求路由至服务的目标实例,以对服务进行访问。
在一个实施例中,获取模块还用于针对多个实例中的任意一个实例,执行以下处理:判断任意一个实例是否订阅上线监听事件;若任意一个实例未订阅上线监听事件,则为任意一个实例订阅上线监听事件;基于订阅的上线监听事件对任意一个实例进行上线状态监听;服务发现中心在监听到实例处于上线状态后,向所述服务管理中心发送上线通知。
在一个实施例中,上线通知是服务发现中心在监听到实例失联后重新上线的情况下,向服务管理中心发送的;服务访问装置还包括恢复模块,用于针对多个实例中的任意一个实例,执行以下处理:将任意一个实例的互联网协议地址和任意一个实例的接口信息一一对应存储到数据库中;在任意一个实例重新上线后,将数据库中与互联网协议地址对应的接口信息,恢复至任意一个实例的元数据中。
在一个实施例中,匹配模块,还用于:对目标元数据进行遍历,将目标访问路径和遍历到的元数据中的访问路径进行匹配;确定符合匹配要求的访问路径所属的实例,得到实例集合;根据路由策略从实例集合中选取目标实例。
在一个实施例中,目标实例的接口信息包括目标实例相应的访问端口和访问路径;路由模块,还用于:根据目标实例相应的互联网协议地址、访问端口和访问路径将访问请求路由至目标实例,以对服务进行访问。
在一个实施例中,确认模块,还用于:在接收到针对服务的访问请求后,获取发送访问请求所使用的请求地址;从请求地址中提取出目标访问路径。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储接口信息数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种服务访问方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种服务访问方法,其特征在于,所述方法包括:
服务管理中心获取服务的多个实例发送的接口注册请求,并基于所述接口注册请求获取多个实例相应的接口信息;所述接口信息中包括所述实例相应的访问路径;所述多个实例部署在容器中;
针对所述多个实例中的每个实例,所述服务管理中心将所述实例相应的接口信息存储到服务发现中心中的所述实例的元数据中,以完成接口注册;
在网关接收到针对所述服务的访问请求后,通过所述网关确认所述访问请求指定的目标访问路径;
所述网关将所述目标访问路径和目标元数据中的访问路径匹配;所述目标元数据,是所述服务发现中心中的所述服务的实例的元数据;
所述网关确定匹配到的访问路径所对应的目标实例的接口信息;
所述网关基于所述目标实例的接口信息将所述访问请求路由至所述服务的所述目标实例,以对所述服务进行访问。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对所述多个实例中的任意一个实例,执行以下处理:
所述服务管理中心判断所述任意一个实例是否订阅上线监听事件;
若所述任意一个实例未订阅上线监听事件,则所述服务管理中心为所述任意一个实例向所述服务发现中心订阅上线监听事件;
所述服务发现中心基于订阅的所述上线监听事件对所述任意一个实例进行上线状态监听;
所述服务发现中心在监听到所述实例处于上线状态后,向所述服务管理中心发送上线通知。
3.根据权利要求2所述的方法,其特征在于,所述上线通知是所述服务发现中心在监听到所述实例失联后重新上线的情况下,向所述服务管理中心发送的;所述方法还包括:
所述服务管理中心针对所述多个实例中的任意一个实例,执行以下处理:
将所述任意一个实例的互联网协议地址和所述任意一个实例的接口信息一一对应存储到所述服务管理中心的数据库中;
在所述任意一个实例重新上线后,将所述数据库中与所述互联网协议地址对应的所述接口信息,恢复至所述任意一个实例的元数据中。
4.根据权利要求1所述的方法,其特征在于,所述网关将所述目标访问路径和目标元数据中的访问路径匹配包括:
所述网关对所述目标元数据进行遍历,将所述目标访问路径和遍历到的元数据中的访问路径进行匹配;
所述方法还包括:
所述网关确定符合匹配要求的访问路径所属的实例,得到实例集合;
所述网关根据路由策略从所述实例集合中选取目标实例。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述目标实例的接口信息包括所述目标实例相应的访问端口和访问路径;所述网关基于所述目标实例的接口信息将所述访问请求路由至所述服务的所述目标实例,以对所述服务进行访问包括:
所述网关根据所述目标实例相应的互联网协议地址、访问端口和访问路径将所述访问请求路由至所述目标实例,以对所述服务进行访问。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述在网关接收到针对所述服务的访问请求后,通过所述网关确认所述访问请求指定的目标访问路径包括:
在网关接收到针对所述服务的访问请求后,所述网关获取发送所述访问请求所使用的请求地址;
所述网关从所述请求地址中提取出目标访问路径。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述目标元数据,是所述服务发现中心中所述服务的已上线的实例的元数据。
8.一种服务访问系统,其特征在于,所述系统包括:服务管理中心和网关;
所述服务管理中心,用于获取服务的多个实例发送的接口注册请求,并基于所述接口注册请求获取多个实例相应的接口信息;所述接口信息中包括所述实例相应的访问路径;所述多个实例部署在容器中;针对所述多个实例中的每个实例,将所述实例相应的接口信息存储到服务发现中心中的所述实例的元数据中,以完成接口注册;
所述网关,用于在接收到针对所述服务的访问请求后,确认所述访问请求指定的目标访问路径;将所述目标访问路径和目标元数据中的访问路径匹配;所述目标元数据,是所述服务发现中心中的所述服务的实例的元数据;确定匹配到的访问路径所对应的目标实例的接口信息;基于所述目标实例的接口信息将所述访问请求路由至所述服务的所述目标实例,以对所述服务进行访问。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202111627331.4A 2021-12-28 2021-12-28 服务访问方法、系统、计算机设备和存储介质 Pending CN114363403A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111627331.4A CN114363403A (zh) 2021-12-28 2021-12-28 服务访问方法、系统、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111627331.4A CN114363403A (zh) 2021-12-28 2021-12-28 服务访问方法、系统、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN114363403A true CN114363403A (zh) 2022-04-15

Family

ID=81104216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111627331.4A Pending CN114363403A (zh) 2021-12-28 2021-12-28 服务访问方法、系统、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN114363403A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116527730A (zh) * 2023-07-04 2023-08-01 北京集度科技有限公司 面向服务的通信装置、方法、电子设备及计算机程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547570A (zh) * 2018-12-29 2019-03-29 深圳云天励飞技术有限公司 服务注册方法、装置、注册中心管理设备及存储介质
CN111245901A (zh) * 2019-12-31 2020-06-05 的卢技术有限公司 一种支持服务参数下发的分布式服务注册发现方法及系统
CN112118184A (zh) * 2020-08-06 2020-12-22 北京健康之家科技有限公司 网关自动路由方法及装置、存储介质、计算机设备
CN112506755A (zh) * 2020-12-18 2021-03-16 北京顺达同行科技有限公司 日志采集方法、装置、计算机设备和存储介质
CN112579319A (zh) * 2020-12-07 2021-03-30 中国民航信息网络股份有限公司 一种基于LRU Cache优化的服务调用方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547570A (zh) * 2018-12-29 2019-03-29 深圳云天励飞技术有限公司 服务注册方法、装置、注册中心管理设备及存储介质
CN111245901A (zh) * 2019-12-31 2020-06-05 的卢技术有限公司 一种支持服务参数下发的分布式服务注册发现方法及系统
CN112118184A (zh) * 2020-08-06 2020-12-22 北京健康之家科技有限公司 网关自动路由方法及装置、存储介质、计算机设备
CN112579319A (zh) * 2020-12-07 2021-03-30 中国民航信息网络股份有限公司 一种基于LRU Cache优化的服务调用方法及装置
CN112506755A (zh) * 2020-12-18 2021-03-16 北京顺达同行科技有限公司 日志采集方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116527730A (zh) * 2023-07-04 2023-08-01 北京集度科技有限公司 面向服务的通信装置、方法、电子设备及计算机程序产品
CN116527730B (zh) * 2023-07-04 2023-10-27 北京集度科技有限公司 面向服务的通信装置、方法、电子设备及计算机程序产品

Similar Documents

Publication Publication Date Title
US20210075881A1 (en) Customizable event-triggered computation at edge locations
EP3348042B1 (en) System, method and computer-readable storage medium for customizable event-triggered computation at edge locations
EP3069231B1 (en) Automated sdk ingestion
CN108470298B (zh) 资源数值转移的方法、装置和系统
CN109359147B (zh) 业务组件处理方法、组件服务器和系统
CN114363403A (zh) 服务访问方法、系统、计算机设备和存储介质
US11494392B2 (en) Tracking entity activity using computer generation of values for blockchain network entries
US11093309B1 (en) Communication hub for information technology (IT) services
US10693939B2 (en) Providing modified protocol responses
US20130151553A1 (en) Method and apparatus for processing a composite context event
US20170078434A1 (en) Read-only data store replication to edge locations
US11381665B2 (en) Tracking client sessions in publish and subscribe systems using a shared repository
US11290318B2 (en) Disaster recovery of cloud resources
CN116566656A (zh) 资源访问方法、装置、设备及计算机存储介质
CN108418857B (zh) 一种Zookeeper集群系统及其连接方法和装置
CN116414628A (zh) 一种新旧系统切换过程中交易请求的处理方法和装置
CN107203915B (zh) 数据存储方法及装置
US11582345B2 (en) Context data management interface for contact center
CN113986835A (zh) FastDFS分布式文件的管理方法、装置、设备及存储介质
CN115842866A (zh) 数据处理方法、装置、计算机可读介质及电子设备
CN111226242B (zh) 云计算网络检查技术
JP5636394B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US20130290830A1 (en) System and method for managing a viewstate of a web application
CN115103028B (zh) SaaS应用的请求处理方法、装置、计算机设备
CN115102854B (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