具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,服务网格下,需要在内核及用户态进行流量控制工作,占用资源多,处理性能不佳。为此,本申请的一些实施例中:对服务网格的架构进行了改进,提出通过软硬件的紧密协同方式,将服务网格中数据面的处理工作下沉到物理网卡中,这样,服务网格中数据面的处理工作不再需要占用宿主机上的计算资源,宿主机可更专注于微服务本身;另外,物理网卡本身具有更高的转发性能,这可有效提高网络吞吐、降低网络延时,从而,可服务网格下的服务间通信性能。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的一种流量控制系统的结构示意图。如图1所示,该系统包括:调用端10和若干服务端20。其中,调用端10和服务端20可以是云网络中的节点、云服务器等,本实施例对调用端10和服务端20的物理实现形式不做限定。
本实施例提供的流量控制方案可应用于使用服务网格对微服务进行流量管理的场景中。其中,微服务是一种用于构建应用的架构方案,微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作(和出现故障)时不会相互影响,而各项服务之间可相互通信、相互协作,来为用户提供所需的内容。服务网格,是用于处理服务间通信的专用基础设施层。它负责通过包含现代云原生应用程序的复杂服务拓扑来可靠地传递请求。实际上,服务网格通常通过一组轻量级网络代理来实现,这些代理与应用程序代码一起部署,而不需要感知应用程序本身。
本实施例提供的流量控制方案对传统的服务网格进行了架构改进。提出将服务网格中数据面的处理工作下沉到宿主机上的物理网卡中。图1中以一次服务间通信为例,展示了流量控制系统的结构示意图。应当理解的是,服务网格下实质有更多的通信端。
参考图1,调用端10和服务端20上均装配有物理网卡,为了便于区分,我们将调用端10上装配的物理网卡描述为第一物理网卡30,将服务端20上的物理网卡描述为第二物理网卡40。本实施例中,物理网卡可采用具有独立的处理器,能够支持编程定制化功能的智能网卡。微服务可运行在容器组中,而容器组可部署在宿主机也即本实施例中的通信端(本文中使用通信端作为调用端和服务端的统称)上。从部署关系来看,一个通信端上可包含多个容器组,多个容器组共用一物理网卡,而一个容器组内可运行多个微服务。
基于此,本实施例中,可预先为物理网卡编写服务网格中数据面的处理程序,并写入物理网卡中,以使物理网卡具备服务网格中数据面的处理能力。其中,本实施例中可参考传统服务网格中的sidecar(边车)代理的相关逻辑进行数据面的处理程序的编写,在此不再详述。其中,传统服务网格中sidecar代理在数据面的处理功能可包括但不限于流量拦截、4-7层网络包解析以及路由转发等,这些处理功能均可通过向物理网卡中写入相关处理程序来实现下沉。
在为物理网卡赋予服务网格中数据面的处理能力后,参考图1,调用端10,可向第一物理网卡30发起服务调用请求。这里,调用端10发起的所有服务调用请求全部流至第一物理网卡30中,物理网卡可对服务调用请求进行导流过滤,也即是确定哪些服务调用请求是需要通过sidecar模式进行流量控制的。这与传统的服务网格相比,不再需要由调用端10采用iptable等软导流方式进行流量过滤,因此,可有效减少宿主机在这方面的资源消耗。
对于第一物理网卡30来说,可预先获取服务网格下各微服务的流量转发规则以及服务注册信息等,基于此,第一物理网卡30可确定服务调用请求指向的目标微服务。例如,第一物理网卡30可从服务调用请求中解析出所需调用的微服务名和端口。第一物理网卡30还可按照目标微服务对应的流量转发规则,将服务调用请求转发至可提供目标微服务的目标服务端20上装配的第二物理网卡40。其中,目标微服务的流量转发规则中可包含能够提供目标微服务的至少一个容器组的地址,第一物理网卡30可通过负载均衡等策略确定出用于想用本次服务调用请求的目标容器组,并将目标容器组的访问地址配置到本地服务调用请求中,这样,第一物理网卡30可将服务调用请求转发至目标容器组所处目标服务端20上装配的第二物理网卡40。
本实施例中,第一物理网卡30和第二物理网卡40之间的通信过程类似于传统服务网卡中sidecar代理之间的通信过程,可采用与sidecar代理之间的通信过程一致的方式对服务调用请求中的访问地址进行不断路由,以是服务调用请求抵达目标服务端20上的第二物理网卡40。
对第二物理网卡40来说,可根据服务调用请求中的资源定位标识和目标微服务对应的流量转发规则,向目标服务端20上的目标微服务发起调用。其中,服务网格下的流量通常是4-7层的,例如,本实施例中,服务调用请求可采用4-7层网络协议;而且,正如前文提及的,目标服务端20上存在多个微服务,调用端10将在服务调用请求中通过资源定位标识的方式标识期望调用的微服务,这样,第二物理网卡40可根据服务调用请求中的资源定位标识确定本次服务调用请求期望调用的目标微服务,并根据目标微服务对应的流量转发规则,对服务调用请求进行继续路由,以向内部的目标微服务发起调用。
目标微服务可响应本次服务调用请求,并可生成服务响应数据。对此,第二物理网卡40可向调用端10中发起服务调用请求的发起方微服务返回目标服务产生的服务响应数据。其中,目标微服务对应的流量转发规则中包含了对输入流量和输出流量的转发规则。上述在目标服务的调用过程中,第一物理网卡30是按照输出流量的转发规则对服务调用请求进行转发,而第二物理网卡40则是按照输入流量的转发规则对服务调用请求进行转发。这里,在目标服务的响应回流过程中,第二物理网卡40可按照输出流量的转发规则对服务响应数据进行处理,而第一物理网卡30则可按照输入流量的转发规则对服务响应数据进行转发,从而可保证服务响应数据可抵达调用端10中的发起方微服务。响应回流过程与服务调用过程对称,在此不再详述。
综上,本实施例中,可对服务网格的架构进行了改进,提出通过软硬件的紧密协同方式,将服务网格中数据面的处理工作下沉到物理网卡中,这样,服务网格中数据面的处理工作不再需要占用宿主机上的计算资源,宿主机可更专注于微服务本身;另外,物理网卡本身具有更高的转发性能,这可有效提高网络吞吐、降低网络延时,从而,可服务网格下的服务间通信性能。
在上述或下述实施例中,可采用多种实现方式进行sidecar代理的相关功能的下沉。
在一种实现方式中,可仅将服务网格中数据面的处理功能下沉至物理网卡中。
在该实现方式中,图2为将服务网格中数据面的处理功能下沉至物理网卡中的一种示例性的实现方案的逻辑示意图,参考图2,该实现方案可以是:目标服务端20上可部署有多个容器组,目标微服务可运行在多个容器组中的目标容器组上,而在第二物理网卡40上可为目标服务端20上的每个容器组分别配置流量控制组件。流量控制组件可用于执行服务网格中数据面的各项处理工作,包括但不限于流量拦截、4-7层网络包解析及路由转发等。
在该示例性的实现方案中,第二物理网卡40可在接收到服务调用请求的情况下,将服务调用请求转发至目标容器组对应的目标流量控制组件上;而目标流量控制组件,则可执行根据服务调用请求中的资源定位标识和目标服务对应的流量转发规则,向目标服务端20上的目标微服务发起调用的操作。据此,在该示例性的实现方案中,可在第二物理网卡40中按照1:1的对应关系为目标服务端20上的每个容器组单独配置流量控制组件,这与传统服务网格中的sidecar代理的部署方式一致。这样,可有小减少服务网格中数据面的处理功能下沉过程中的功能改动工作,减少下沉过程中的工作量。
在该实现方式中,图3为将服务网格中数据面的处理功能下沉至物理网卡中的另一种示例性的实现方案的逻辑示意图,参考图3,该实现方案可以是:在目标服务端20上部署有多个容器组,目标微服务可运行在多个容器组中的目标容器组上,而在第二物理网卡40上可配置有多个容器组共用的流量控制组件。
在该示例性的实现方案中,第二物理网卡40可在接收到服务调用请求的情况下,将服务调用请求转发至该共用的流量控制组件上;而该共用的流量控制组件,则可执行根据服务调用请求中的资源定位标识和目标服务对应的流量转发规则,向目标服务端20上的目标微服务发起调用的操作。据此,在该示例性的实现方案中,仅需在第二物理网卡40中配置一个共用的流量控制组件即可,这对物理网卡的处理能力要求更低,因此,可有效节省物理网卡的硬件成本。
另外,上文是以第二物理网卡40为例对下沉过程进行了描述,应当理解的是,也可采用同样的实现方式在调用端10中将相关的数据面的处理工作下沉至第一物理网卡30中。
综上,在该实现方式中,可将服务网格中数据面的处理工作下沉到物理网卡中,由物理网卡中配置的一个或多个流量控制组件来执行流量拦截、4-7层网络包解析及路由转发等数据面的处理工作,这可有效减轻通信端的处理压力。
除了数据面的处理工作外,服务网格中还存在其它需要执行的工作,例如,规则订阅工作等。
在另一种实现方式中,可将规则订阅工作也下沉到物理网卡中。在该实现方式中,图4为将服务网格中的规则订阅功能下沉至物理网卡中的一种示例性的实现方案的逻辑示意图,参考图4,该实现方案可以是:在第二物理网卡40上为目标服务端20上的每个容器组分别配置规则订阅组件;其中,目标容器组对应的目标规则订阅组件,可用于获取为目标微服务订阅的流量转发规则。
基于此,在第二物理网卡40上配置有共用的流量控制组件情况下,目标规则订阅组件可将为目标微服务订阅的流量转发规则提供给共用的流量控制组件。这种情况下,物理网卡中为通信端上的每个容器组分别配置规则订阅组件,各规则订阅组件各司其职,而共用的流量控制组件则可按需从相应的规则订阅组件中获取流量转发规则,从而支持共用的流量控制组件对通信端上多个微服务进行流量控制,这种情况下的交互效率更高。
而在第二物理网卡40上配置有每个容器组各自对应的流量控制组件情况下,目标规则订阅组件可将为目标微服务订阅的流量转发规则提供给目标微服务所在目标容器组对应的目标流量控制组件。这种情况下,沿袭了传统服务网格中sidecar代理的部署结构,也即是,将传统服务网格中的sidecar代理按照1:1的方式完全下沉到物理网卡中;在物理网卡中,为通信端上的每个容器组分别配置规则订阅组件和流量控制组件。这种实现方案的生态普适性更好,在下沉过程中,对功能的改动较小。
图5为将服务网格中的规则订阅功能下沉至物理网卡中的另一种示例性的实现方案的逻辑示意图,参考图5,该实现方案可以是:在第二物理网卡40上配置多个容器组共用的规则订阅组件;该规则订阅组件,可获取为目标服务端20上的各微服务订阅的流量转发规则。
基于此,在第二物理网卡40上配置有共用的流量控制组件情况下,该规则订阅组件可将为目标服务端20上的各微服务订阅的流量转发规则提供给共用的流量控制组件。这种情况下,通信端上的各微服务共用规则订阅组件和流量控制组件,共用的规则订阅组件和流量控制组件可相互协作,支持对通信端上多个微服务进行流量控制,而这对物理网卡的硬件要求较低,可节省物理网卡的硬件成本。
在第二物理网卡40上配置有每个容器组各自对应的流量控制组件情况下,该规则订阅组件可将为目标微服务订阅的流量转发规则提供给目标微服务所在目标容器组对应的目标流量控制组件。这种情况下,物理网卡上共用的规则订阅组件可为多个流量控制组件提供所需的转发规则,以支持多个流量控制组件执行数据面的处理工作。
另外,上文是以第二物理网卡40为例对规则订阅工作的下沉过程进行了描述,应当理解的是,也可采用同样的实现方式在调用端10中将相关的规则订阅工作下沉至第一物理网卡30中。
综上,在该实现方式中,可将服务网格中的规则订阅工作下沉到物理网卡中,由物理网卡中配置的一个或多个规则订阅组件来执行规则订阅工作,这可有效减轻通信端的处理压力。
在又一种实现方式中,可将规则订阅工作保留在通信端中。在该实现方式中,一种示例性的实现方案可以是:在目标服务端20上为每个容器组分别配置有规则订阅组件。基于此,目标容器组对应的目标规则订阅组件,可用于获取为目标微服务订阅的流量转发规则;将流量转发规则提供给第二物理网卡40。
在第二物理网卡40上配置有共用的流量控制组件情况下,目标服务端20上的目标规则订阅组件可将为目标微服务订阅的流量转发规则提供给第二物理网卡40上的共用的流量控制组件。这种情况下,通信端中为每个容器组分别配置规则订阅组件,各规则订阅组件各司其职,而第二物理网卡40上的共用的流量控制组件则可按需从相应的规则订阅组件中获取流量转发规则,从而支持共用的流量控制组件对通信端上多个微服务进行流量控制。
而在第二物理网卡40上配置有每个容器组各自对应的流量控制组件情况下,目标服务端20上的目标规则订阅组件可将为目标微服务订阅的流量转发规则提供给第二物理网卡40上目标微服务所在目标容器组对应的目标流量控制组件。这种情况下,每个容器组的规则订阅组件和流量控制组件一对一配置。这种实现方案的生态普适性更好,对通信端中的规则定远组件的改动较小。
另一种示例性实现方案可以是:在目标服务端20上配置多个容器组共用的规则订阅组件。基于此,该规则订阅组件,可获取为目标服务端20上各微服务订阅的流量转发规则,并将流量转发规则提供给第二物理网卡40。
在第二物理网卡40上配置有共用的流量控制组件情况下,目标服务端20上的共用的规则订阅组件可将为目标服务端20上的各微服务订阅的流量转发规则提供给第二物理网卡40上的共用的流量控制组件。这种情况下,通信端上各微服务共用的规则订阅组件和物理网卡上的共用的流量控制组件可相互协作。
在第二物理网卡40上配置有每个容器组各自对应的流量控制组件情况下,目标服务端20上的共用的规则订阅组件可将为目标微服务订阅的流量转发规则提供给第二物理网卡40上目标微服务所在目标容器组对应的目标流量控制组件。这种情况下,通信端上的共用的规则订阅组件可为物理网卡上的多个流量控制组件提供所需的转发规则,以支持物理网卡上多个流量控制组件执行数据面的处理工作。
另外,上文是以第二物理网卡40为例对规则订阅工作的保留方案进行了描述,应当理解的是,也可采用同样的实现方式将相关的规则订阅工作保留在调用端10中。
在该实现方式中,涉及通信端上的规则订阅组件与物理网卡上的流量控制组件之间的通信过程,为了保证数据安全,可在通信端上的规则订阅组件和物理网卡上的流量控制组件之间建立安全通道,基于此,可采用加密等方案安全传输流量转发规则。
综上,在该实现方式中,可将服务网格中的规则订阅工作保留在通信端中,并可与物理网卡中的流量控制组件进行相互协作,以实现流量控制。
以下以一个购物应用为例,对本实施例提供的流量控制方案进行示例性说明。
例如,该购物应用可拆分多个核心功能,每个核心功能可部署为一个微服务,以其中的两个微服务A和B为例来说,比如微服务A对应搜索功能、微服务B对应产品推荐功能。在用户使用该购物应用的过程中,微服务A和B之间可能需要发生通信。
首先,微服务A和微服务B可先向服务网格的控制面进行服务注册,这样,控制面可注册微服务A和B各自所在通信端上装配的物理网卡的地址和端口、服务名及流量转发规则等服务信息。基于此,微服务A和B可相互订阅对方的服务信息。
以微服务A和微服务B为http服务为例。
微服务A可作为请求发起方,通过输入URL发起对微服务B的调用请求,该调用请求将流到微服务A所在的通信端a上装配的物理网卡a’。
物理网卡a’在接收到调用请求后,可解析出调用的服务名、端口等信息,并可根据订阅的微服务B的流量转发规则,将调用请求转发到微服务B所在的通信端b上装配的物理网卡b’上;
物理网卡b’接收到调用请求后,可通过透传的方式或者根据URL以及微服务B的流量转发规则,向通信端b内部的微服务B发起调用。
微服务B可响应该调用请求,并按原路将服务影响数据返回给微服务A,以实现微服务A和微服务B之间的通信。
图6为本申请另一示例性实施例提供的一种通信端的结构示意图。如图6所示,该通信端可包括:存储器60和处理器61,还装配有物理网卡62。
处理器61,与存储器60耦合,用于执行存储器60中的计算机程序,以用于将运行在通信端上的至少一个微服务对应的流量转发规则提供给物理网卡;
物理网卡,用于基于流量转发规则,将流向通信端的输入流量分发至通信端上的目的容器组POD;基于流量转发规则,将通信端发出的输出流量转发至本通信端或其它通信端上的目的容器组POD;
其中,输入流量或输出流量所需的微服务运行在目的容器组POD中。
本实施例提供的通信端,可将微服务对应的流量转发规则提供给物理网卡,基于此,可将流量控制工作下沉至物理网卡中,由物理网卡对输入流量和输出流量进行控制。值得说明的是,通信端上运行的微服务之间也可进行通信,这样情况下,通信的两个微服务可共用同一物理网卡,也即是,物理网卡可将本通信端发起的输出流量转发至本通信端上对应的目的容器组POD。
在一可选实施例中,物理网卡62在将通信端发出的输出流量转发至其它通信端上的目的容器组POD过程中,可用于:
获取第一输出流量,第一输出流量中包含第一服务调用请求;
确定第一服务调用请求指向的目标微服务;
按照目标微服务对应的流量转发规则,将第一服务调用请求转发至可提供目标微服务的目的通信端上装配的第三物理网卡,以供第三物理网卡根据第一服务调用请求中的资源定位标识和目标微服务对应的流量转发规则,向目的通信端上目的容器组POD中的目标微服务发起调用。
其中,上述过程是物理网卡所处的通信端作为前述系统实施例中的调用端时所执行的步骤。
除此之外,物理网卡所处的通信端还可作为前述系统实施例中的服务端,这种情况下,物理网卡在将流向通信端的输入流量分发至通信端上的目的容器组POD过程中,用于:
接收第一输入流量,第一输入流量中包含第四物理网卡转发的第二服务调用请求;
根据第二服务调用请求中的资源定位标识和所请求的目标微服务对应的流量转发规则,向通信端上目的容器组POD中的目标微服务发起调用。
承接这种情况,在一可选实施例中,物理网卡62中的通信组件可包括其所处通信端上每个容器组各自对应的流量控制组件,基于此,处理器61可具体用于:
将第二服务调用请求转发至目标微服务所在的目标容器组对应的目标流量控制组件上;利用目标流量控制组件,根据第二服务调用请求中的资源定位标识和目标服务对应的流量转发规则,向目标微服务发起调用。
在一可选实施例中,物理网卡62中的通信组件可包括其所处通信端上多个容器组共用的流量控制组件,基于此,处理器61可具体用于:
将第二服务调用请求转发至共用的流量控制组件上;利用该共用的流量控制组件,根据第二服务调用请求中的资源定位标识和目标服务对应的流量转发规则,向目标微服务发起调用。
在一种可选实施例中,通信端上可为每个容器组分别配置规则订阅组件,基于此,处理器61可具体用于:
从所处的通信端上目标微服务所在的目标容器组对应的目标规则订阅组件中获取为目标微服务订阅的流量转发规则。
在一种可选实施例中,通信端上可为多个容器组配置共用的规则订阅组件,基于此,处理器61可具体用于:
从所处的通信端上的共用的规则订阅组件中获取为目标微服务订阅的流量转发规则。
在一种可选实施例中,物理网卡62中可部署有其所处通信端上每个容器组各自对应的规则订阅组件,基于此,处理器61可具体用于:
利用目标微服务所在的目标容器组对应的目标规则订阅组件,获取为目标微服务订阅的流量转发规则;在物理网卡上配置有共用的流量控制组件情况下,将为目标微服务订阅的流量转发规则提供给共用的流量控制组件;在物理网卡上配置有每个容器组各自对应的流量控制组件情况下,将为目标微服务订阅的流量转发规则提供给目标微服务所在目标容器组对应的目标流量控制组件。
在一种可选实施例中,物理网卡62中可部署有其所处通信端上多个容器组共用的规则订阅组件,基于此,处理器61可具体用于:
利用该共用的规则订阅组件获取为通信端上的各微服务订阅的流量转发规则;
在物理网卡上配置有共用的流量控制组件情况下,将为各微服务订阅的流量转发规则提供给共用的流量控制组件;
在物理网卡上配置有每个容器组各自对应的流量控制组件情况下,将为目标微服务订阅的流量转发规则提供给目标微服务所在目标容器组对应的目标流量控制组件。
在一可选实施例中,服务调用请求可采用七层网络协议。
在一可选实施例中,处理器61还可用于向第三物理网卡中发起第二服务调用请求的发起方微服务返回目标服务产生的服务响应数据。
进一步,如图6所示,该通信端还包括:电源组件63等其它组件。图6中仅示意性给出部分组件,并不意味着通信端只包括图6所示组件。
值得说明的是,上述关于通信端各实施例中的技术细节,可参考前述的系统实施例中关于调用端和服务端的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。
图7为本申请又一示例性实施例提供的一种基于服务网格的流量控制方法的流程示意图,该方法可由流量控制装置执行,该流量控制装置可实现为软件和/或硬件的结合,该流量控制装置可集成在通信端中。参考图7,通信端上装配有第一物理网卡,第一物理网卡中包含运行于通信端上的至少一个微服务对应的流量转发规则,该方法可包括:
步骤700、在接收到输入流量的情况下,利用第一物理网卡将输入流量分发至本通信端上的目的容器组POD;
步骤701、在发出输出流量的情况下,利用第一物理网卡将输出流量转发至本通信端或其它通信端上的目的容器组POD;
其中,输入流量或输出流量所需的微服务运行在目的容器组POD中。
在一可选实施例中,步骤利用第一物理网卡将输出流量转发至其它通信端上的目的容器组POD,可包括:
获取第一输出流量,第一输出流量中包含第一服务调用请求;
确定第一服务调用请求指向的目标微服务;
按照目标微服务对应的流量转发规则,将第一服务调用请求转发至可提供目标微服务的目的通信端上装配的第二物理网卡,以供第二物理网卡根据第一服务调用请求中的资源定位标识和目标微服务对应的流量转发规则,向目的通信端上目的容器组POD中的目标微服务发起调用。
在图7所述的流程示意图中,示出的是通信端作为前述系统实施例中的调用端时所执行的步骤。
除此之外,通信端还可作为前述系统实施例中的服务端,这种情况下,步骤利用第一物理网卡将输入流量分发至本通信端上的目的容器组POD,可包括:
接收第一输入流量,第一输入流量中包含第三物理网卡发起的第二服务调用请求;
根据第二服务调用请求中的资源定位标识和所请求的目标微服务对应的流量转发规则,向本通信端上目的容器组POD中的目标微服务发起调用。
承接这种情况,在一可选实施例中,第一物理网卡中可部署有其所处通信端上每个容器组各自对应的流量控制组件,基于此,该方法可具体包括:
将第二服务调用请求转发至目标微服务所在的目标容器组对应的目标流量控制组件上;利用目标流量控制组件,根据第二服务调用请求中的资源定位标识和目标服务对应的流量转发规则,向目标微服务发起调用。
在一可选实施例中,第一物理网卡中可部署有其所处通信端上多个容器组共用的流量控制组件,基于此,该方法可具体包括:
将第二服务调用请求转发至共用的流量控制组件上;利用该共用的流量控制组件,根据第二服务调用请求中的资源定位标识和目标服务对应的流量转发规则,向目标微服务发起调用。
在一种可选实施例中,通信端上可为每个容器组分别配置规则订阅组件,基于此,该方法可具体包括:
从通信端上目标微服务所在的目标容器组对应的目标规则订阅组件中获取为目标微服务订阅的流量转发规则。
在一种可选实施例中,通信端上可为多个容器组配置共用的规则订阅组件,基于此,该方法可具体包括:
从通信端上的共用的规则订阅组件中获取为目标微服务订阅的流量转发规则。
在一种可选实施例中,第一物理网卡中可部署有其所处通信端上每个容器组各自对应的规则订阅组件,基于此,该方法可具体包括:
利用目标微服务所在的目标容器组对应的目标规则订阅组件,获取为目标微服务订阅的流量转发规则;在物理网卡上配置有共用的流量控制组件情况下,将为目标微服务订阅的流量转发规则提供给共用的流量控制组件;在物理网卡上配置有每个容器组各自对应的流量控制组件情况下,将为目标微服务订阅的流量转发规则提供给目标微服务所在目标容器组对应的目标流量控制组件。
在一种可选实施例中,第一物理网卡中可部署有其所处通信端上多个容器组共用的规则订阅组件,基于此,该方法可具体包括:
利用该共用的规则订阅组件获取为通信端上的各微服务订阅的流量转发规则;
在物理网卡上配置有共用的流量控制组件情况下,将为各微服务订阅的流量转发规则提供给共用的流量控制组件;
在物理网卡上配置有每个容器组各自对应的流量控制组件情况下,将为目标微服务订阅的流量转发规则提供给目标微服务所在目标容器组对应的目标流量控制组件。
在一可选实施例中,服务调用请求可采用七层网络协议。
在一可选实施例中,该方法还可包括利用第一物理网卡向第三物理网卡中发起第二服务调用请求的发起方微服务返回目标服务产生的服务响应数据。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤700至步骤702的执行主体可以为设备A;又比如,步骤700和701的执行主体可以为设备A,步骤702的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如700、701等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的请求、物理网卡等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由通信端执行的各步骤。
上述图6中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
上述图6中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图6中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。