CN109587071B - 基于sdn的微服务负载均衡方法 - Google Patents
基于sdn的微服务负载均衡方法 Download PDFInfo
- Publication number
- CN109587071B CN109587071B CN201811453579.1A CN201811453579A CN109587071B CN 109587071 B CN109587071 B CN 109587071B CN 201811453579 A CN201811453579 A CN 201811453579A CN 109587071 B CN109587071 B CN 109587071B
- Authority
- CN
- China
- Prior art keywords
- service
- load balancing
- sdn
- module
- sdn controller
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
基于SDN的微服务负载均衡方法,属于软件定义网络技术领域。本发明将SDN网络引入微服务框架,利用SDN的全局网络视图和对网络流精细化的控制能力,为微服务调用提供更精细化的负载均衡能力。通过虚ip改写技术、调用链路分析技术,基于调用链路的整体负载情况,进行负载均衡计算,将负载均衡策略转换成网络转发的流表形式,实现对调用方无感知的高效率负载均衡。
Description
技术领域
本专利涉及一种基于SDN的微服务负载均衡方法,属于软件定义网络技术领域。
背景技术
微服务是互联网分布式服务设计的新理念,通过服务拆分成细粒度、功能独立的微服务模块,达到功能解耦,服务独立演进的能力。但在微服务部署中,负载均衡一般由调用端实现,调用端通过服务发现机制获取所有提供服务的服务器ip地址,通过随机请求、round robin等方式实现负载均衡。但是这种负载均衡没有考虑整体网络的转发效率情况,也没有综合考虑一个服务调用链路中的每个调用节点的负载均衡情况。
发明内容
本专利提供了一种能够对微服务整个调用链路进行负载均衡决策的方法。本专利系统包括SDN控制器、SDN交换机、应用服务器;SDN控制器通过OpenFlow协议与所有SDN交换机相连,应用服务器与SDN交换机相连,所述SDN控制器包括OpenFlow接口模块、服务注册与发现模块、主机状态管理模块、调用链路分析模块、负载均衡计算模块;
其中,OpenFlow接口模块用于接收、处理并响应SDN交换机上传到控制器的流路径请求;
服务注册与发现模块用于:服务提供者向SDN控制器注册自己提供的服务;服务调用者通过服务标识,向SDN控制器请求服务提供方的ip地址,用于发起网络通信;
主机状态管理模块用于维护各个服务提供方的在线状态与资源负载情况;
调用链路分析模块用于获取服务之间的依赖关系,以便能够基于整个调用链路进行负载均衡考量;
负载均衡计算模块用于为服务调用规划合适的转发路径,综合考虑调用链路中每个服务器、每个网络链路的状态,计算出路径并生成相应的流表下发到SDN交换机。
具体步骤包括:
步骤1.服务提供方启动时,向服务注册与发现模块进行注册,将自己的信息与提供的服务标识注册到服务注册与发现模块;
步骤2.服务调用方发起服务调用时,向服务注册与发现模块进行服务发现请求,将服务标识转换成ip地址;
步骤3.服务注册与发现模块响应服务调用方发起的服务发现请求,返回一个虚ip,虚ip不属于任何一个服务提供方,这样服务调用方只需要知道该虚ip能够进行服务调用即可,无需负责负载均衡策略,在网络转发的过程中由SDN控制器决定负载均衡策略;
步骤4.服务调用方发起服务请求,服务请求的网络数据包以虚ip作为目的ip地址;
步骤5.SDN交换机收到网络请求数据包,通过packet in消息的方式向SDN控制器请求流表;
步骤6.SDN控制器收到packet in消息后,向服务注册模块查询提供服务的ip列表,需要将虚ip改写成真实服务器ip,以便完成正常的网络流转发,ip改写的依据是负载均衡模块进行的全链路负载均衡分析做出的路径转发决策。SDN控制器将提供服务的ip列表传递给负载均衡计算模块,负载均衡模块根据调用链路分析模块生成的结果进行路径计算、生成流表,其中流表项包括ip改写的逻辑和数据包转发的逻辑;SDN控制器在处理服务调用请求的同时,调用链路分析模块会解析并维护调用方与被调用方的服务依赖关系,用于全链路负载均衡计算。
总的来说,本专利将SDN网络用于微服务框架,利用SDN的全局网络视图和对网络流精细化的控制能力,为微服务调用提供更精细化的负载均衡能力。通过使用虚ip与ip改写技术,将分布式微服务的负载均衡决策放到SDN控制器实现;通过服务调用链路分析技术,计算出整个调用链路负载最低的网络流路径转发方案,实现微服务系统负载均衡策略的优化。
附图说明
图1为本专利控制器的结构框图。
图2为本专利中网络通信的流程图。
具体实施方式
SDN交换机与SDN控制器连接,服务器与SDN交换机连接;
SDN控制器部署OpenFlow接口模块、服务注册与发现模块、主机状态管理模块、调用链路分析模块、负载均衡计算模块;
微服务提供方与SDN交换机相连,微服务server与client端配置服务注册与发现模块的地址。
本专利系统包括SDN控制器、SDN交换机、应用服务器;SDN控制器通过OpenFlow协议与所有SDN交换机相连,应用服务器与SDN交换机相连,所述SDN控制器包括OpenFlow接口模块、服务注册与发现模块、主机状态管理模块、调用链路分析模块、负载均衡计算模块;
其中,OpenFlow接口模块用于接收、处理并响应SDN交换机上传到控制器的流路径请求;
服务注册与发现模块用于:服务提供者向SDN控制器注册自己提供的服务;服务调用者通过服务标识,向SDN控制器请求服务提供方的ip地址,用于发起网络通信;
主机状态管理模块用于维护各个服务提供方的在线状态与资源负载情况;
调用链路分析模块用于获取服务之间的依赖关系,以便能够基于整个调用链路进行负载均衡考量;
负载均衡计算模块用于为服务调用规划合适的转发路径,综合考虑调用链路中每个服务器、每个网络链路的状态,计算出路径并生成相应的流表下发到SDN交换机。
具体步骤包括:
步骤1.服务提供方启动时,向服务注册与发现模块进行注册,将自己的信息与提供的服务标识注册到服务注册与发现模块;
步骤2.服务调用方发起服务调用时,向服务注册与发现模块进行服务发现请求,将服务标识转换成ip地址;
步骤3.服务注册与发现模块响应服务调用方发起的服务发现请求,返回一个虚ip,虚ip不属于任何一个服务提供方,这样服务调用方只需要知道该虚ip能够进行服务调用即可,无需负责负载均衡策略,在网络转发的过程中由SDN控制器决定负载均衡策略;
步骤4.服务调用方发起服务请求,服务请求的网络数据包以虚ip作为目的ip地址;
步骤5.SDN交换机收到网络请求数据包,通过packet in消息的方式向SDN控制器请求流表;
步骤6.SDN控制器收到packet in消息后,向服务注册模块查询提供服务的ip列表,需要将虚ip改写成真实服务器ip,以便完成正常的网络流转发,ip改写的依据是负载均衡模块进行的全链路负载均衡分析做出的路径转发决策。SDN控制器将提供服务的ip列表传递给负载均衡计算模块,负载均衡模块根据调用链路分析模块生成的结果进行路径计算、生成流表,其中流表项包括ip改写的逻辑和数据包转发的逻辑;SDN控制器在处理服务调用请求的同时,调用链路分析模块会解析并维护调用方与被调用方的服务依赖关系,用于全链路负载均衡计算。
Claims (2)
1.基于SDN的微服务负载均衡系统,其特征在于:包括SDN控制器、SDN交换机、应用服务器;SDN控制器通过OpenFlow协议与所有SDN交换机相连,应用服务器与SDN交换机相连,所述SDN控制器包括OpenFlow接口模块、服务注册与发现模块、主机状态管理模块、调用链路分析模块、负载均衡计算模块;
其中,OpenFlow接口模块用于接收、处理并响应SDN交换机上传到控制器的流路径请求;
服务注册与发现模块用于服务提供者向SDN控制器注册自己提供的服务;服务调用者通过服务标识,向SDN控制器请求服务提供方的ip地址,用于发起网络通信;
主机状态管理模块用于维护各个服务提供方的在线状态与资源负载情况;
调用链路分析模块用于获取服务之间的依赖关系,以便能够基于整个调用链路进行负载均衡考量;
负载均衡计算模块用于为服务调用规划合适的转发路径,综合考虑调用链路中每个服务器、每个网络链路的状态,计算出路径并生成相应的流表下发到SDN交换机;
2.基于SDN的微服务负载均衡方法,其特征在于步骤包括:
步骤1.服务提供方启动时,向服务注册与发现模块进行注册,将自己的信息与提供的服务标识注册到服务注册与发现模块;
步骤2.服务调用方发起服务调用时,向服务注册与发现模块进行服务发现请求,将服务标识转换成ip地址;
步骤3.服务注册与发现模块响应服务调用方发起的服务发现请求,返回一个虚ip,虚ip不属于任何一个服务提供方,这样服务调用方只需要知道该虚ip能够进行服务调用即可,在网络转发的过程中由SDN控制器决定负载均衡策略;
步骤4.服务调用方发起服务请求,服务请求的网络数据包以虚ip作为目的ip地址;
步骤5.SDN交换机收到网络请求数据包,通过packet in消息的方式向SDN控制器请求流表;
步骤6.SDN控制器收到packet in消息后,向服务注册与发现模块查询提供服务的ip列表,需要将虚ip改写成真实服务器ip,以便完成网络流转发,ip改写的依据是负载均衡计算模块进行的全链路负载均衡分析做出的路径转发决策;SDN控制器将提供服务的ip列表传递给负载均衡计算模块,负载均衡计算模块根据调用链路分析模块生成的结果进行路径计算、生成流表,其中流表项包括ip改写的逻辑和数据包转发的逻辑;SDN控制器在处理服务调用请求的同时,调用链路分析模块会解析并维护调用方与被调用方的服务依赖关系,用于全链路负载均衡计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811453579.1A CN109587071B (zh) | 2018-11-30 | 2018-11-30 | 基于sdn的微服务负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811453579.1A CN109587071B (zh) | 2018-11-30 | 2018-11-30 | 基于sdn的微服务负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109587071A CN109587071A (zh) | 2019-04-05 |
CN109587071B true CN109587071B (zh) | 2022-07-05 |
Family
ID=65925857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811453579.1A Active CN109587071B (zh) | 2018-11-30 | 2018-11-30 | 基于sdn的微服务负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109587071B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110087107B (zh) * | 2019-04-25 | 2022-01-14 | 视联动力信息技术股份有限公司 | 一种提高系统自适应能力的方法和视联网系统 |
CN112527491A (zh) * | 2019-09-17 | 2021-03-19 | 烽火通信科技股份有限公司 | 一种微服务调用负载均衡方法及系统 |
CN111669401B (zh) * | 2020-06-22 | 2022-05-13 | 南方电网数字电网研究院有限公司 | 网络系统的安全防护方法、装置、计算机设备和存储介质 |
CN112256351B (zh) * | 2020-10-26 | 2023-11-17 | 卫宁健康科技集团股份有限公司 | Feign组件的实现方法、微服务调用方法及装置 |
CN113285836B (zh) * | 2021-05-27 | 2022-05-10 | 中国人民解放军陆军工程大学 | 一种基于微服务实时迁移的软件系统韧性增强系统及方法 |
CN114448984B (zh) * | 2021-12-27 | 2024-01-09 | 国家电网有限公司信息通信分公司 | 跨平台通用sdn控制器的适配方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106686094A (zh) * | 2016-12-30 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种微服务架构 |
CN107589992A (zh) * | 2017-08-02 | 2018-01-16 | 北京大学(天津滨海)新代信息技术研究院 | 一种基于群体智能的容器化应用负载调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10397316B2 (en) * | 2016-05-31 | 2019-08-27 | Ribbon Communications Operating Company, Inc. | Methods and apparatus for load balancing in SDN networks |
-
2018
- 2018-11-30 CN CN201811453579.1A patent/CN109587071B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106686094A (zh) * | 2016-12-30 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种微服务架构 |
CN107589992A (zh) * | 2017-08-02 | 2018-01-16 | 北京大学(天津滨海)新代信息技术研究院 | 一种基于群体智能的容器化应用负载调度方法 |
Non-Patent Citations (1)
Title |
---|
基于微服务架构的应用监控系统设计与实现;丁学英等;《电力信息与通信技术》;20180715(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109587071A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109587071B (zh) | 基于sdn的微服务负载均衡方法 | |
CN102714636B (zh) | 用于便于越过网络边界的推送通信的方法和装置 | |
US10735553B2 (en) | Micro-services in a telecommunications network | |
CN113301166B (zh) | 服务的调用方法及装置、存储介质、电子装置 | |
CN102893556B (zh) | 用于源对等体基于容量的Diameter负载共享的方法、系统和设备 | |
JP2018523932A (ja) | 負荷バランシングコンピュータデバイス、システム、および方法 | |
WO2006077587A2 (en) | Service convergence across multiple communication domains | |
JP2008167317A (ja) | モニタ制御システム、モニタ装置、モニタ制御方法およびモニタ制御プログラム | |
CN113596191A (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN103986638B (zh) | Advpn隧道绑定多公网链路的方法和装置 | |
CN106572132B (zh) | 分发建链方法、装置和系统 | |
CN106375355B (zh) | 负载均衡处理方法及装置 | |
EP2706737B1 (en) | Method, device, and system for obtaining address of sip registration server | |
CN106970843B (zh) | 远程调用方法和装置 | |
JP2007181079A (ja) | 通信経路制御システム | |
WO2023169374A1 (zh) | 一种路由方法及系统、节点 | |
US10158604B2 (en) | Method for addressing messages in a computer network | |
EP3897013B1 (en) | Method for accessing local network, and related device | |
CN114650290A (zh) | 网络连通的方法、处理装置、终端及存储介质 | |
US8243734B1 (en) | System and method for providing deterministic routing in a network environment | |
US20060140198A1 (en) | Method and system for determining media gateway loading | |
CN110247778A (zh) | 操作系统安装方法、装置、电子设备及存储介质 | |
CN114158093B (zh) | 通信方法、网元、通信系统及存储介质 | |
EP1089515A2 (en) | Call control server selection with load sharing mechanisms | |
US10819856B2 (en) | Systems and methods for identifying virtual communication platform users |
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 |