CN110768911B - 流量高效引流方法、装置、设备、系统及存储介质 - Google Patents

流量高效引流方法、装置、设备、系统及存储介质 Download PDF

Info

Publication number
CN110768911B
CN110768911B CN201810856527.2A CN201810856527A CN110768911B CN 110768911 B CN110768911 B CN 110768911B CN 201810856527 A CN201810856527 A CN 201810856527A CN 110768911 B CN110768911 B CN 110768911B
Authority
CN
China
Prior art keywords
data packet
service
flow table
micro
flow
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
CN201810856527.2A
Other languages
English (en)
Other versions
CN110768911A (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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201810856527.2A priority Critical patent/CN110768911B/zh
Publication of CN110768911A publication Critical patent/CN110768911A/zh
Application granted granted Critical
Publication of CN110768911B publication Critical patent/CN110768911B/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种微服务架构下的流量高效引流方法,包括以下步骤:当接收到外部访问端的数据包时,SDN交换设备查找本地流表,确定当前接收到的数据包对应的第一流表项;SDN交换设备基于所述第一流表项,将当前接收到的数据包转发至对应的微服务实例;当接收到微服务实例的数据包时,SDN交换设备查找本地流表,确定当前接收到的数据包对应的第二流表项;SDN交换设备基于所述第二流表项,将当前接收到的数据包转发至对应的下一微服务实例,或将当前接收到的数据包转发至对应外部访问端。本发明还公开了一种微服务架构下的流量高效引流装置、SDN交换设备及计算机可读存储介质。本发明提升了微服务引流效率、减少了网络中的通信流量。

Description

流量高效引流方法、装置、设备、系统及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种微服务架构下的流量高效引流方法、装置、设备、系统及存储介质。
背景技术
随着云计算业务的持续增长,单体式应用的弊端越发明显,单体式应用扩展性差、可靠性低,导致敏捷性开发和部署变的无法完成。为了解决单体式应用的扩展性、可靠性问题的微服务技术应运而生。微服务架构的好处包括:(1)通过分解巨大单体式应用为多个服务方法解决了复杂性问题。在功能不变的情况下,应用被分解为多个可管理的分支或服务,单个服务很容易开发、理解和维护。(2)微服务架构模式是每个微服务独立的部署。开发者不再需要协调其它服务部署对本服务的影响。这种改变可以加快部署速度。(3)微服务架构模式使得每个服务独立扩展。可以根据每个服务的规模来部署满足需求的规模。
但微服务架构中,相对于单体式应用,相同数目的应用下,服务数目多得多,导致服务间的通信量大大增多。因此,如何有效地减少服务间的通信量、以及对通信量进行高效引流,成为微服务架构普及过程中必须解决的一个重要问题。
目前业界的微服务框架主要包括以下两种:
1、基于单一API网关,如图1所示,API网关一般部署在单独的物理服务器或虚拟机上。所有外部访问都先经过API网关,再由API网关将请求发送给第一个微服务的某个实例,如服务1.1。请求被服务1.1处理完后,再回到API网关,并被API网关转发到下一个微服务。
这种架构的最大问题在于:(1)数据包每次经过一个微服务后,都需要回到API网关,才能转发到下一个服务,这种三角形的引流方式效率低下,同时会导致微服务网络中流量成倍增加,这是目前微服务架构流量通信里最大的问题;(2)单个API网关的处理能力会成为整个应用系统的性能瓶颈;(3)单个API网关也是整个系统的单点故障点,如果API网关失效,整个系统无法运行。
2、基于API网关集群,如图2所示,为解决微服务架构中API网关的性能瓶颈和单点故障问题,可以将API网关以集群方式部署。API网关集群,对于大流量的访问,可以负载均衡到不同API网关,也可以依据不同的访问类型分流到不同的API网关(如API网关1专门处理移动端访问,API网关2专门处理web服务)。集群部署能有效解决性能和单点故障问题,但通信流量的引流方式还是三角方式,还是存在效率低下和通信量成倍增加的问题。
发明内容
本发明的主要目的在于提供一种微服务架构下的流量高效引流方法、装置、设备、系统及存储介质,旨在解决如何提升微服务架构下流量的引流效率的技术问题。
为实现上述目的,本发明提供一种微服务架构下的流量高效引流方法,其特征在于,所述流量高效引流方法包括以下步骤:
当接收到外部访问端的数据包时,SDN交换设备查找本地流表,确定当前接收到的数据包对应的第一流表项;
SDN交换设备基于所述第一流表项,将当前接收到的数据包转发至对应的微服务实例;
当接收到微服务实例的数据包时,SDN交换设备查找本地流表,确定当前接收到的数据包对应的第二流表项;
SDN交换设备基于所述第二流表项,将当前接收到的数据包转发至对应的下一微服务实例,或将当前接收到的数据包转发至对应外部访问端。
可选地,所述流量高效引流方法还包括:
当接收到符合服务链引流的外部访问端的数据包时,SDN交换设备基于预设的服务链,对当前接收到的数据包添加服务链包头标签,所述服务链为具有指定转发顺序的转发路径集合;
SDN交换设备基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第三流表项;
SDN交换设备基于所述第三流表项,将带有服务链包头标签的数据包转发至对应的微服务实例,以供微服务实例进行处理。
可选地,所述流量高效引流方法还包括:
当接收到带有服务链包头标签的数据包时,SDN交换设备基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第四流表项;
SDN交换设备基于所述第四流表项,将当前数据包转发至下一SDN交换设备,或将当前数据包转发至对应的下一微服务实例,或将当前接收到的数据包剔除服务链包头标签后转发至对应外部访问端。
可选地,所述流量高效引流方法还包括:
在进行引流之前,SDN交换设备接收SDN控制器配置并下发的流表并进行本地存储。
进一步地,为实现上述目的,本发明还提供一种微服务架构下的流量高效引流装置,应用于SDN交换设备,所述流量高效引流装置包括:
流表项确定模块,用于当接收到外部访问端的数据包时,查找本地流表,确定当前接收到的数据包对应的第一流表项;
流量引流模块,用于基于所述第一流表项,将当前接收到的数据包转发至对应的微服务实例;
所述流表项确定模块还用于:当接收到微服务实例的数据包时,查找本地流表,确定当前接收到的数据包对应的第二流表项;
所述流量引流模块还用于:基于所述第二流表项,将当前接收到的数据包转发至对应的下一微服务实例,或将当前接收到的数据包转发至对应外部访问端。
可选地,所述流量高效引流装置还包括:服务链添加模块;
所述服务链添加模块用于:当接收到符合服务链引流的外部访问端的数据包时,基于预设的服务链,对当前接收到的数据包添加服务链包头标签,所述服务链为具有指定转发顺序的转发路径集合;
所述流表项确定模块还用于:基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第三流表项;
所述流量引流模块还用于:基于所述第三流表项,将带有服务链包头标签的数据包转发至对应的微服务实例,以供微服务实例进行处理。
可选地,所述流表项确定模块还用于:当接收到带有服务链包头标签的数据包时,基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第四流表项;
所述流量引流模块还用于:基于所述第四流表项,将当前数据包转发至下一SDN交换设备,或将当前数据包转发至对应的下一微服务实例,或将当前接收到的数据包剔除服务链包头标签后转发至对应外部访问端。
进一步地,为实现上述目的,本发明还提供一种SDN交换设备,所述SDN交换设备包括存储器、处理以及存储在所述存储器上并可在所述处理器上运行的流量高效引流程序,所述流量高效引流程序被所述处理器执行时实现如上述任一项所述的流量高效引流方法的步骤。
进一步地,为实现上述目的,本发明还提供一种微服务架构下的流量高效引流系统,所述流量高效引流系统包括:若干SDN控制器以及若干如上所述的SDN交换设备,所述SDN控制器用于向所述SDN交换设备下发流表以及对微服务架构下的微服务及微服务实例进行管理。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有流量高效引流程序,所述流量高效引流程序被处理器执行时实现如上述任一项所述的流量高效引流方法的步骤。
本发明针对现有的微服务架构下API网关引流方式的不足,提出一种基于SDN网络的微服务引流实现方法,将API网关的控制面和转发面分离,控制面集中在SDN控制器上,转发面通过物理或虚拟的SDN交换设备实现。本发明避免了API网关需要单独占用服务器资源的问题,由于数据包可以在SDN交换设备里引流,因而可避免API网关架构中的三角引流问题,提升了微服务引流效率、减少了网络中的通信流量。
附图说明
图1为现有基于单一API网关的微服务架构示意图;
图2为现有基于API网关集群的微服务架构示意图;
图3为本发明SDN交换设备实施例方案涉及的设备硬件运行环境的结构示意图;
图4为本发明微服务架构下的流量高效引流系统一实施例对应的微服务架构示意图;
图5为现有基于API网关的微服务架构中流量的三角转发场景示意图;
图6为本发明微服务架构下的流量高效引流方法一实施例的流程示意图;
图7为本发明微服务架构下的流量高效引流方法一实施例中基于SDN实现服务链引流的场景示意图;
图8为本发明微服务架构下的流量高效引流装置第一实施例的功能模块示意图;
图9为本发明微服务架构下的流量高效引流装置第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种SDN交换设备。
参照图3,图3为本发明SDN交换设备实施例方案涉及的设备硬件运行环境的结构示意图。
SDN交换设备为软件定义网络中转发层面的设备,负责网络数据包的查表转发工作。
如图3所示,该SDN交换设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图3中示出的SDN交换设备的硬件结构并不构成对SDN交换设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图3所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及流量高效引流程序。其中,操作系统是管理和控制SDN交换设备与软件资源的程序,支持网络通信模块、用户接口模块、流量高效引流程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口1003。
在图3所示的SDN交换设备硬件结构中,网络接口1004主要用于连接系统后台,与系统后台进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;SDN交换设备通过处理器1001调用存储器1005中存储的流量高效引流程序,并执行以下操作:
当接收到外部访问端的数据包时,查找本地流表,确定当前接收到的数据包对应的第一流表项;
基于所述第一流表项,将当前接收到的数据包转发至对应的微服务实例;
当接收到微服务实例的数据包时,查找本地流表,确定当前接收到的数据包对应的第二流表项;
基于所述第二流表项,将当前接收到的数据包转发至对应的下一微服务实例,或将当前接收到的数据包转发至对应外部访问端。
进一步地,SDN交换设备通过处理器1001调用存储器1005中存储的流量高效引流程序还执行以下操作:
当接收到符合服务链引流的外部访问端的数据包时,基于预设的服务链,对当前接收到的数据包添加服务链包头标签,所述服务链为具有指定转发顺序的转发路径集合;
基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第三流表项;
基于所述第三流表项,将带有服务链包头标签的数据包转发至对应的微服务实例,以供微服务实例进行处理。
进一步地,SDN交换设备通过处理器1001调用存储器1005中存储的流量高效引流程序还执行以下操作:
当接收到带有服务链包头标签的数据包时,基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第四流表项;
基于所述第四流表项,将当前数据包转发至下一SDN交换设备,或将当前数据包转发至对应的下一微服务实例,或将当前接收到的数据包剔除服务链包头标签后转发至对应外部访问端。
进一步地,SDN交换设备通过处理器1001调用存储器1005中存储的流量高效引流程序还执行以下操作:
在进行引流之前,接收SDN控制器配置并下发的流表并进行本地存储。
本发明还提供一种微服务架构下的流量高效引流系统。
参照图4,图4为本发明微服务架构下的流量高效引流系统一实施例对应的微服务架构示意图。
本实施例中,流量高效引流系统包括:若干SDN控制器以及若干SDN交换设备。如图4所示的引入SDN控制器与SDN交换设备所搭建的新的微服务架构示意图。
本实施例将原微服务架构中API网关的控制面和转发面分离,控制面集中在SDN控制器上,转发面通过物理或虚拟的SDN交换设备实现,SDN交换设备与SDN控制器都可以单机部署也可以集群部署。
本实施例中,所有的微服务及其实例上线时,都要到SDN控制器(集群)进行注册,下线时要进行注销,并且设有超时机制,以便尽早发现失效的微服务实例。
本实施例中,SDN控制器(集群)采用流表预下发的机制,根据用户预先定义的转发策略及当前微服务架构中的微服务实例状态,预先将用于流量引流的流表项下发到SDN交换设备上。仅当存在微服务实例上下线、更改转发策略、无法匹配的流量首包时,SDN控制器才会更新SDN交换设备上的流表。
在更新完流表后,外部访问的一切流量,都依据SDN交换设备上的流表项来转发,即数据面引流过程无需SDN控制器参与。即使微服务实例上下线频繁,但相对于数据面流量来说,控制面的配置(配置流表项)更新时造成的数据量很小,因此,SDN控制器(集群)不会成为微服务架构中的性能瓶颈和单点失效点。
通过SDN交换设备,可以解决现有基于API网关的微服务架构中存在的三角转发问题。三角转发问题的示意图如下图5所示,箭头所表示的流量在经过微服务实例1.1和微服务实例2.2时,都必须先回到API网关才能知道下一个微服务实例在哪里,进而才能转发到下一个微服务实例。由于数据包可以在SDN交换设备里引流,因而可以省去交换设备和API网关之间的交互过程,相对于现有微服务架构中的三角转发,本发明所搭建的微服务架构可减少通信时延,提高了流量转发率,减少了各微服务间的通信流量。
本发明还提供一种微服务架构下的流量高效引流方法。
参照图6,图6为本发明微服务架构下的流量高效引流方法一实施例的流程示意图。本实施例中,所述流量高效引流方法包括以下步骤:
步骤S10,当接收到外部访问端的数据包时,SDN交换设备查找本地流表,确定当前接收到的数据包对应的第一流表项;
步骤S20,SDN交换设备基于所述第一流表项,将当前接收到的数据包转发至对应的微服务实例;
本实施例中,SDN交换设备为软件定义网络中转发层面的设备,可以是物理实体,也可以是软件程序,主要负责网络数据包的查表转发工作。
流表可被视作是对网络设备的数据转发功能的一种抽象,一个流表中包含多个流表项,每一流表项主要由以下三个部分组成:
(1)包头域(Header Fields),用于数据包匹配,也是识别该流表项对应的数据包;
(2)计数器(Counters),用于统计匹配数据包个数;
(3)动作(Actions),用于展示匹配的数据包如何处理,比如转发或丢弃。
可选的,在进行引流之前,SDN交换设备接收SDN控制器配置并下发的流表并进行本地存储。也即SDN控制器采用流表预下发机制,根据预先定义的转发策略及微服务实例状态配置流表项,并预先将流表下发到SDN交换设备上。
本实施例中,外部访问端发起访问请求服务,SDN交换设备接收到外部访问端发起的访问请求服务对应的数据包后,需要将该数据包转发给微服务实例进行处理。SDN交换设备查找本地流表,通过数据包匹配,确定该数据包对应的流表项。
SDN交换设备基于该流表项中对应的动作,将当前接收到的外部访问端发起的访问请求服务对应的数据包转发至对应微服务实例进行处理,微服务实例处理完后会返回给SDN交换设备新的数据包。
步骤S30,当接收到微服务实例的数据包时,SDN交换设备查找本地流表,确定当前接收到的数据包对应的第二流表项;
步骤S40,SDN交换设备基于所述第二流表项,将当前接收到的数据包转发至对应的下一微服务实例,或将当前接收到的数据包转发至对应外部访问端。
本实施例中,微服务实例返回给SDN交换设备新的数据包后,SDN交换设备再次查找本地流表,通过数据包匹配,确定当前数据包对应的流表项,然后再基于该流表项中对应的动作,将当前接收到的微服务实例返回的数据包转发给下一微服务实例,或者返回给对应外部访问端。
基于微服务架构以及请求服务类型的不同,微服务实例的数据包在经过一微服务实例的处理后,既有可能已经完成了访问端的服务请求,因而需要返回给对应的访问端,也有可能还需要其他微服务实例对服务请求继续进行处理,因而需要转发给下一微服务实例继续进行处理。
为便于理解本发明,下面基于图4对本发明进行举例说明。
例如,外部访问1向SDN交换设备传入一个服务请求数据包,SDN交换设备查找本地流表,确定与该数据包匹配的流表项,并基于查找到的流表项,将该数据包转发给微服务实例1.1进行处理;微服务实例1.1处理完该数据包后,向SDN交换设备返回一新的数据包,SDN交换设备继续查找本地流表,确定与该数据包匹配的流表项,并基于查找到的流表项,将该数据包转发给微服务实例2.2进行处理;微服务实例2.2处理完该数据包后,向SDN交换设备返回一新的数据包,SDN交换设备继续查找本地流表,确定与该数据包匹配的流表项,并基于查找到的流表项,将该数据包返回给发起服务请求的外部访问1。
本实施例针对现有的微服务架构下API网关引流方式的不足,提出一种基于SDN网络的微服务引流实现方法,将API网关的控制面和转发面分离,控制面集中在SDN控制器上,转发面通过物理或虚拟的SDN交换设备实现。本发明避免了API网关需要单独占用服务器资源的问题,由于数据包可以在SDN交换设备里引流,因而可避免API网关架构中的三角引流问题,提升了微服务引流效率、减少了网络中的通信流量。
进一步地,在本发明微服务架构下的流量高效引流方法另一实施例中,采用SDN进行引流的实现方式很多,为进一步提升SDN的引流效率,本实施例采用SDN服务链方式实现引流,从而让数据包能够按照预定的顺序经过多个微服务实例,从而提升数据包的流转效率。
例如,请求服务的数据包从外部访问端发出,经过SDN交换设备,并按照预定顺序经过不同的微服务实例,回复结果再经由SDN交换设备回到外部访问端,这一过程其实形成了一条服务链。如图7所示,服务链为:外部访问—>SDN交换设备—>微服务1.1—>SDN交换设备—>微服务2.2—>SDN交换设备—>外部访问。
数据报文在网络中传递时,需要经过各种各样的功能节点,才能保证网络能够按照设计要求,提供给用户安全、快速、稳定的网络服务。将物理或虚拟的功能组件按照一定顺序串起来,并让特定流量按照预定顺序经过这些功能组件时就构成了一条服务链(service function chain,SFC)。
本实施例中,具体通过以下流程实现SDN服务链引流:
(1)当接收到符合服务链引流的外部访问端的数据包时,SDN交换设备基于预设的服务链,对当前接收到的数据包添加服务链包头标签;
服务链为具有指定转发顺序的转发路径集合。例如上述服务链:外部访问—>SDN交换设备—>微服务1.1—>SDN交换设备—>微服务2.2—>SDN交换设备—>外部访问,对应的转发路径包括:外部访问—>SDN交换设备—>微服务1.1、微服务1.1—>SDN交换设备—>微服务2.2、微服务2.2—>SDN交换设备—>外部访问。
本实施例对于服务链中转发路径的设置不限,例如,基于源MAC地址、源IP地址与目的MAC地址、目的IP地址设置转发路径。需要说明的是,转发路径的设置需要与流表项进行关联,从而使SDN交换设备通过关联的流表项,实现上述转发路径。
(2)SDN交换设备基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第三流表项;
(3)SDN交换设备基于所述第三流表项,将带有服务链包头标签的数据包转发至对应的微服务实例,以供微服务实例进行处理。
本实施例中,对接收到的外部访问端的数据包添加服务链包头标签后,SDN交换设备基于服务链包头标签,匹配流表中对应的流表项,然后基于匹配到的流表项,将带有服务链包头标签的数据包转发至对应的微服务实例,以供微服务实例进行处理。
进一步地,在本发明微服务架构下的流量高效引流方法另一实施例中,还通过以下流程实现SDN服务链引流:
(1)当接收到带有服务链包头标签的数据包时,SDN交换设备基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第四流表项;
(2)SDN交换设备基于所述第四流表项,将当前数据包转发至:
A、下一SDN交换设备;
B、对应的下一微服务实例;
C、对应外部访问端,其中,数据包转发前已剔除服务链包头标签。
本实施例中,SDN交换设备接收到的带有服务链包头标签的数据包既可能是上一SDN交换设备转发的,也可能是某一微服务实例返回的。SDN交换设备通过服务链包头标签,匹配流表中对应的流表项,然后基于匹配到的流表项,将带有服务链包头标签的数据包转发至下一SDN交换设备或者对应的下一微服务实例或者对应外部访问端,从而实现流量按指定顺序引流的服务链引流方式。
本发明还提供一种微服务架构下的流量高效引流装置。
参照图8,图8为本发明微服务架构下的流量高效引流装置第一实施例的功能模块示意图。本实施例中,所述流量高效引流装置应用于SDN交换设备,并包括以下功能模块:
流表项确定模块10,用于当接收到外部访问端的数据包时,查找本地流表,确定当前接收到的数据包对应的第一流表项;
流量引流模块20,用于基于所述第一流表项,将当前接收到的数据包转发至对应的微服务实例;
本实施例中,外部访问端发起访问请求服务,流表项确定模块10接收到外部访问端发起的访问请求服务对应的数据包后,需要通过流量引流模块20将该数据包转发给微服务实例进行处理。流表项确定模块10查找本地流表,通过数据包匹配,确定该数据包对应的流表项。
流量引流模块20基于该流表项中对应的动作,将当前接收到的外部访问端发起的访问请求服务对应的数据包转发至对应微服务实例进行处理,微服务实例处理完后会返回新的数据包。
所述流表项确定模块10还用于:当接收到微服务实例的数据包时,查找本地流表,确定当前接收到的数据包对应的第二流表项;
所述流量引流模块20还用于:基于所述第二流表项,将当前接收到的数据包转发至对应的下一微服务实例,或将当前接收到的数据包转发至对应外部访问端。
本实施例中,微服务实例返回新的数据包后,流表项确定模块10再次查找本地流表,通过数据包匹配,确定当前数据包对应的流表项,然后流量引流模块20再基于该流表项中对应的动作,将当前接收到的微服务实例返回的数据包转发给下一微服务实例,或者返回给对应外部访问端。
基于微服务架构以及请求服务类型的不同,微服务实例的数据包在经过一微服务实例的处理后,既有可能已经完成了访问端的服务请求,因而需要返回给对应的访问端,也有可能还需要其他微服务实例对服务请求继续进行处理,因而需要转发给下一微服务实例继续进行处理。
本实施例针对现有的微服务架构下API网关引流方式的不足,提出一种基于SDN网络的微服务引流实现方法,将API网关的控制面和转发面分离,控制面集中在SDN控制器上,转发面通过物理或虚拟的SDN交换设备实现。本发明避免了API网关需要单独占用服务器资源的问题,由于数据包可以在SDN交换设备里引流,因而可避免API网关架构中的三角引流问题,提升了微服务引流效率、减少了网络中的通信流量。
参照图9,图9为本发明微服务架构下的流量高效引流装置第二实施例的功能模块示意图。本实施例中,所述流量高效引流装置还包括:
服务链添加模块30,用于当接收到符合服务链引流的外部访问端的数据包时,基于预设的服务链,对当前接收到的数据包添加服务链包头标签;
服务链为具有指定转发顺序的转发路径集合。例如上述服务链:外部访问—>SDN交换设备->微服务1.1->SDN交换设备->微服务2.2->SDN交换设备->外部访问,对应的转发路径包括:外部访问->SDN交换设备->微服务1.1、微服务1.1->SDN交换设备->微服务2.2、微服务2.2->SDN交换设备->外部访问。
本实施例对于服务链中转发路径的设置不限,例如,基于源MAC地址、源IP地址与目的MAC地址、目的IP地址设置转发路径。需要说明的是,转发路径的设置需要与流表项进行关联,从而使SDN交换设备通过关联的流表项,实现上述转发路径。
所述流表项确定模块10还用于:基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第三流表项;
所述流量引流模块20还用于:基于所述第三流表项,将带有服务链包头标签的数据包转发至对应的微服务实例,以供微服务实例进行处理。
本实施例中,对接收到的外部访问端的数据包添加服务链包头标签后,流表项确定模块10基于服务链包头标签,匹配流表中对应的流表项,然后流量引流模块20基于匹配到的流表项,将带有服务链包头标签的数据包转发至对应的微服务实例,以供微服务实例进行处理。
进一步地,在一实施例中,所述流表项确定模块10还用于:当接收到带有服务链包头标签的数据包时,基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第四流表项;
所述流量引流模块20还用于:基于所述第四流表项,将当前数据包转发至下一SDN交换设备,或将当前数据包转发至对应的下一微服务实例,或将当前接收到的数据包剔除服务链包头标签后转发至对应外部访问端。
本实施例中,流表项确定模块10接收到的带有服务链包头标签的数据包既可能是上一SDN交换设备转发的,也可能是某一微服务实例返回的。流表项确定模块10通过服务链包头标签,匹配流表中对应的流表项,然后流量引流模块20基于匹配到的流表项,将带有服务链包头标签的数据包转发至下一SDN交换设备或者对应的下一微服务实例或者对应外部访问端,从而实现流量按指定顺序引流的服务链引流方式。
本发明还提供一种计算机可读存储介质。
本实施例中,所述计算机可读存储介质上存储有流量高效引流程序,所述流量高效引流程序被处理器执行时实现如上述任一项实施例中所述的流量高效引流方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。

Claims (10)

1.一种微服务架构下的流量高效引流方法,其特征在于,所述流量高效引流方法包括以下步骤:
当接收到外部访问端的数据包时,SDN交换设备查找本地流表,确定当前接收到的数据包对应的第一流表项;
SDN交换设备基于所述第一流表项中对应的动作,将当前接收到的数据包转发至对应的微服务实例;
当接收到微服务实例的数据包时,SDN交换设备查找本地流表,确定当前接收到的数据包对应的第二流表项;
SDN交换设备基于所述第二流表项中对应的动作,将当前接收到的数据包转发至对应的下一微服务实例,或将当前接收到的数据包转发至对应外部访问端。
2.如权利要求1所述的流量高效引流方法,其特征在于,所述流量高效引流方法还包括:
当接收到符合服务链引流的外部访问端的数据包时,SDN交换设备基于预设的服务链,对当前接收到的数据包添加服务链包头标签,所述服务链为具有指定转发顺序的转发路径集合;
SDN交换设备基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第三流表项;
SDN交换设备基于所述第三流表项,将带有服务链包头标签的数据包转发至对应的微服务实例,以供微服务实例进行处理。
3.如权利要求2所述的流量高效引流方法,其特征在于,所述流量高效引流方法还包括:
当接收到带有服务链包头标签的数据包时,SDN交换设备基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第四流表项;
SDN交换设备基于所述第四流表项,将当前数据包转发至下一SDN交换设备,或将当前数据包转发至对应的下一微服务实例,或将当前接收到的数据包剔除服务链包头标签后转发至对应外部访问端。
4.如权利要求1所述的流量高效引流方法,其特征在于,所述流量高效引流方法还包括:
在进行引流之前,SDN交换设备接收SDN控制器配置并下发的流表并进行本地存储。
5.一种微服务架构下的流量高效引流装置,应用于SDN交换设备,其特征在于,所述流量高效引流装置包括:
流表项确定模块,用于当接收到外部访问端的数据包时,查找本地流表,确定当前接收到的数据包对应的第一流表项;
流量引流模块,用于基于所述第一流表项中对应的动作,将当前接收到的数据包转发至对应的微服务实例;
所述流表项确定模块还用于:当接收到微服务实例的数据包时,查找本地流表,确定当前接收到的数据包对应的第二流表项;
所述流量引流模块还用于:基于所述第二流表项中对应的动作,将当前接收到的数据包转发至对应的下一微服务实例,或将当前接收到的数据包转发至对应外部访问端。
6.如权利要求5所述的流量高效引流装置,其特征在于,所述流量高效引流装置还包括:服务链添加模块;
所述服务链添加模块用于:当接收到符合服务链引流的外部访问端的数据包时,基于预设的服务链,对当前接收到的数据包添加服务链包头标签,所述服务链为具有指定转发顺序的转发路径集合;
所述流表项确定模块还用于:基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第三流表项;
所述流量引流模块还用于:基于所述第三流表项,将带有服务链包头标签的数据包转发至对应的微服务实例,以供微服务实例进行处理。
7.如权利要求6所述的流量高效引流装置,其特征在于,
所述流表项确定模块还用于:当接收到带有服务链包头标签的数据包时,基于所述服务链包头标签,查找本地流表,确定当前数据包对应的第四流表项;
所述流量引流模块还用于:基于所述第四流表项,将当前数据包转发至下一SDN交换设备,或将当前数据包转发至对应的下一微服务实例,或将当前接收到的数据包剔除服务链包头标签后转发至对应外部访问端。
8.一种SDN交换设备,其特征在于,所述SDN交换设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的流量高效引流程序,所述流量高效引流程序被所述处理器执行时实现如权利要求1-4中任一项所述的流量高效引流方法的步骤。
9.一种微服务架构下的流量高效引流系统,其特征在于,所述流量高效引流系统包括:若干SDN控制器以及若干如权利要求8所述的SDN交换设备,所述SDN控制器用于向所述SDN交换设备下发流表以及对微服务架构下的微服务及微服务实例进行管理。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有流量高效引流程序,所述流量高效引流程序被处理器执行时实现如权利要求1-4中任一项所述的流量高效引流方法的步骤。
CN201810856527.2A 2018-07-27 2018-07-27 流量高效引流方法、装置、设备、系统及存储介质 Active CN110768911B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810856527.2A CN110768911B (zh) 2018-07-27 2018-07-27 流量高效引流方法、装置、设备、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810856527.2A CN110768911B (zh) 2018-07-27 2018-07-27 流量高效引流方法、装置、设备、系统及存储介质

Publications (2)

Publication Number Publication Date
CN110768911A CN110768911A (zh) 2020-02-07
CN110768911B true CN110768911B (zh) 2023-05-12

Family

ID=69328846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810856527.2A Active CN110768911B (zh) 2018-07-27 2018-07-27 流量高效引流方法、装置、设备、系统及存储介质

Country Status (1)

Country Link
CN (1) CN110768911B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532506B (zh) * 2020-12-02 2023-01-06 天津卓朗科技发展有限公司 混合组网方法、装置、服务器和计算机可读存储介质
CN112702265A (zh) * 2021-01-18 2021-04-23 北京安数云信息技术有限公司 一种提供虚拟化场景下分布式引流的解决方法
CN113285995B (zh) * 2021-05-18 2023-06-13 中国人民解放军陆军工程大学 一种基于sdn的微服务请求自适应映射分配系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795805A (zh) * 2014-02-27 2014-05-14 中国科学技术大学苏州研究院 基于sdn的分布式服务器负载均衡方法
WO2015032333A1 (zh) * 2013-09-05 2015-03-12 华为技术有限公司 一种数据报文转发方法及装置
CN105187325A (zh) * 2015-10-27 2015-12-23 上海斐讯数据通信技术有限公司 一种sdn流表管理方法及系统、交换机
JP6162831B2 (ja) * 2016-01-06 2017-07-12 日本電信電話株式会社 パケット通信システム、sdn制御装置、パケット通信方法、及びプログラム
CN107911258A (zh) * 2017-12-29 2018-04-13 深信服科技股份有限公司 一种基于sdn网络的安全资源池的实现方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110048952B (zh) * 2013-12-10 2021-11-09 华为技术有限公司 一种流表的生成方法和装置
US9954799B2 (en) * 2015-05-14 2018-04-24 International Business Machines Corporation Adaptive service chain management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015032333A1 (zh) * 2013-09-05 2015-03-12 华为技术有限公司 一种数据报文转发方法及装置
CN103795805A (zh) * 2014-02-27 2014-05-14 中国科学技术大学苏州研究院 基于sdn的分布式服务器负载均衡方法
CN105187325A (zh) * 2015-10-27 2015-12-23 上海斐讯数据通信技术有限公司 一种sdn流表管理方法及系统、交换机
JP6162831B2 (ja) * 2016-01-06 2017-07-12 日本電信電話株式会社 パケット通信システム、sdn制御装置、パケット通信方法、及びプログラム
CN107911258A (zh) * 2017-12-29 2018-04-13 深信服科技股份有限公司 一种基于sdn网络的安全资源池的实现方法及系统

Also Published As

Publication number Publication date
CN110768911A (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
US11349722B2 (en) Method and system of connecting to a multipath hub in a cluster
TWI766893B (zh) 虛擬專有網路及規則表生成方法、裝置及路由方法
JP5652475B2 (ja) ネットワークシステム、及びネットワーク管理方法
CA2968964C (en) Source ip address transparency systems and methods
US20170310586A1 (en) Table Entry In Software Defined Network
CN110768911B (zh) 流量高效引流方法、装置、设备、系统及存储介质
CN105391635B (zh) 一种基于sdn的网络虚拟化方法
CN104702438B (zh) Pe设备管理方法以及装置
CN106789152A (zh) 基于多队列网卡的处理器扩展方法及装置
CN113542128B (zh) 一种发送路由信息的方法和装置
US20170093723A1 (en) Programmable data plane hardware load balancing system
CN106385354B (zh) 报文转发方法及装置
WO2015106623A1 (zh) 一种配置、下发流表项的方法及装置
JP2015032932A (ja) キャリア網における経路制御システム及び方法
CN102447639A (zh) 一种策略路由方法及装置
CN104301446B (zh) 一种报文处理方法、交换机设备及系统
CN109120556B (zh) 一种云主机访问对象存储服务器的方法及系统
WO2020226917A1 (en) Distributed load balancer health management using data center network manager
CN110601989A (zh) 一种网络流量均衡方法及装置
US10498637B2 (en) Switch processing method, controller, switch, and switch processing system
Fang et al. Hypernat: Scaling up network address translation with smartnics for clouds
CN114978808A (zh) 一种数据转发方法、装置、电子设备及存储介质
Chen et al. $\mathrm {F^{2}} $ Tree: Rapid Failure Recovery for Routing in Production Data Center Networks
KR20150079391A (ko) 네트워크 가상화 방법 및 장치
Li et al. A kernel-space POF virtual switch

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