CN113726674A - 基于Nginx+Lua的流量调度方法及设备 - Google Patents

基于Nginx+Lua的流量调度方法及设备 Download PDF

Info

Publication number
CN113726674A
CN113726674A CN202110994608.0A CN202110994608A CN113726674A CN 113726674 A CN113726674 A CN 113726674A CN 202110994608 A CN202110994608 A CN 202110994608A CN 113726674 A CN113726674 A CN 113726674A
Authority
CN
China
Prior art keywords
data center
traffic
lua
nginx
deploying
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.)
Granted
Application number
CN202110994608.0A
Other languages
English (en)
Other versions
CN113726674B (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.)
Pig Bajie Co Ltd
Original Assignee
Pig Bajie 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 Pig Bajie Co Ltd filed Critical Pig Bajie Co Ltd
Priority to CN202110994608.0A priority Critical patent/CN113726674B/zh
Publication of CN113726674A publication Critical patent/CN113726674A/zh
Application granted granted Critical
Publication of CN113726674B publication Critical patent/CN113726674B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

本发明实施例公开了一种基于Nginx+Lua的流量调度方法及设备,该方法包括:将各数据中心进行连接,使得每个数据中心的内网网络能够进行互联;将各应用服务分别部署在各数据中心上;在每个数据中心流量入口部署Nginx+Lua代理;根据配置的流量策略管理每个数据中心的流量入口Nginx代理的不同模式转发规则;所述转发规则包括用于进行流量分配的引流规则;通过ngx_lua读取相应引流规则代理到后端服务,以响应于用户访问各个数据中心入口;其有益效果是:实现入口流量可以全局统一动态管理、比例分配、快速切换和流量切换,从而克服现有技术中流量切换缓慢、资源利用率低和影响网站可用性的问题。

Description

基于Nginx+Lua的流量调度方法及设备
技术领域
本发明涉及流量调度技术领域,具体涉及一种基于Nginx+Lua的流量调度方法及设备。
背景技术
目前,企业的应用服务部署在多个数据中心,每个数据中心都需要对外提供相同的WEB应用服务,最初是通过DNS主备方式进行对外提供服务,但这种方式会造成备用数据中心的资源没有得到有效利用且浪费成本,后来改成DNS轮询方式,虽然解决了资源利用率问题,但是新问题也出现了,比如当某个数据中心的业务应用、中间件、数据库发生故障后,DNS无法快速切换流量,始终有一部分用户还是会访问到异常的应用服务,影响网站的可用性,同时也无法对各数据入口的流量进行管理分配。
发明内容
针对现有技术中的技术缺陷,本发明实施例的目的在于提供一种基于Nginx+Lua的流量调度方法及设备,以克服现有技术中所存在的无法对各数据入口的流量进行管理分配的缺陷。
为实现上述目的,第一方面,本发明实施例提供了一种基于Nginx+Lua的流量调度方法,应用于多个数据中心,所述方法包括:
将各数据中心进行连接,使得每个数据中心的内网网络能够进行互联;
将各应用服务分别部署在各数据中心上;
在每个数据中心流量入口部署Nginx+Lua代理;
根据配置的流量策略管理每个数据中心的流量入口Nginx代理的不同模式转发规则;其中,所述转发规则包括用于进行流量分配的引流规则;
通过ngx_lua读取相应引流规则代理到后端服务,以响应于用户访问各个数据中心入口。
第二方面,本发明实施例提供了一种基于Nginx+Lua的流量调度设备,包括网络单元、部署单元和调度单元;
所述网络单元用于:
将各数据中心进行连接,使得每个数据中心的内网网络能够进行互联;
所述部署单元用于:
将各应用服务分别部署在各数据中心上;
在每个数据中心流量入口部署Nginx+Lua代理;
所述调度单元用于:
根据配置的流量策略管理每个数据中心的流量入口Nginx代理的不同模式转发规则;其中,所述转发规则包括用于进行流量分配的引流规则;
通过ngx_lua读取相应引流规则代理到后端服务,以响应于用户访问各个数据中心入口。
第三方面,本发明实施例提供了另一种基于Nginx+Lua的流量调度设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
实施本发明实施例,通过在每个数据中心流量入口部署Nginx+Lua代理,用于分发各个数据中心的业务流量,根据配置的流量策略管理每个数据中心的流量入口Nginx代理的不同模式转发规则;以实现入口流量可以全局统一动态管理、比例分配、快速切换和流量切换,从而克服现有技术中流量切换缓慢、资源利用率低和影响网站可用性的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种基于Nginx+Lua的流量调度方法的流程图;
图2是本发明第一实施例提供的一种基于Nginx+Lua的流量调度设备的结构图;
图3是本发明第二实施例提供的一种基于Nginx+Lua的流量调度设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为更好地理解本发明实施例,先对所涉及的相关技术内容进行如下描述:
Nginx是一款开源的Web服务器软件,其具有性能稳定、高并发、低内存耗用、高性能的处理能力等特点。
ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,通过将LuaJIT的虚拟机嵌入到Nginx的worker中,这样既保持高性能,又能不失去lua开发的简单特性。
DNS域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
请参考图1,本发明实施例提供的基于Nginx+Lua的流量调度方法,应用于多个数据中心,所述方法包括:
S101,将各数据中心进行连接,使得每个数据中心的内网网络能够进行互联。
具体地,将每个数据中心通过专线进行内网连接,形成互联网络,各数据中心位于异地不同的地方,用于异地多活的场景。
S102,将各应用服务分别部署在各数据中心上。
具体地,将各个应用服务部署在多个数据中心,例如,数据中心包括数据中心1、数据中心2和数据中心3,应用服务包括服务x和服务y;则将服务x和服务y部署于数据中心1,服务x和服务y部署于数据中心2,同理,服务x和服务y部署于数据中心3。
实施时,各数据中心部署应用服务时,还将各应用服务与对应的域名进行关联。
S103,在每个数据中心流量入口部署Nginx+Lua代理。
在本实施例中,所述Nginx+Lua代理,用于分发各个数据中心的业务流量,是基于Nginx+Lua实现的动态路由反向代理系统。
S104,根据配置的流量策略管理每个数据中心的流量入口Nginx代理的不同模式转发规则;其中,所述转发规则包括用于进行流量分配的引流规则。
具体地,在本实施例中,所述流量策略是基于域名和对应数据中心调度到各个数据中心的后端应用配置所得,可根据实际的需求或故障时,进行所述流量策略的重新配置,实现流量的及时切换和调度;
所述代理的不同模式转发规则包括多活模式、双活模式和单活模式等。
S105,通过ngx_lua读取相应引流规则代理到后端服务,以响应于用户访问各个数据中心入口。
具体地,在本实施例中,用户访问时,通过DNS轮询各个数据中心入口;并根据具体的引流规则进行流量转发。
为更好的理解本发明,以一具体应用示例进行说明。
例如:
域名:www.zbj.com、task.zbj.com;
数据中心:datacenterA、datacenterB;
应用服务:app_www、app_task;
首先,将datacenterA与datacenterB进行专线进行内网互联,域名www.zbj.com关联应用服务为:app_www,域名task.zbj.com关联应用服务为:app_task,这2个应用服务分别在datacenterA与datacenterB都部署相同的服务。
接下来,分别在datacenterA与datacenterB的流量入口处部署Nginx+Lua代理,然后我们在流量调度系统设置www.zbj.com的流量转发到datacenterA/datacenterB,流量比例为:1/5,task.zbj.com不进行设置引流规则。
最后,用户访问www.zbj.com的时候,域名解析datacenterA入口,datacenterA的ngx_lua从Redis读取引流规则,按照流量比例1/5(datacenterA/datacenterB)进行转发;当访问task.zbj.com的时候,域名解析datacenterB入口,datacenterB的ngx_lua未从Redis读取到引流规则,就按照默认方式引流至datacenterB自身的后端流量。
假如datacenterA的应用app_www出现故障,只需将www.zbj.com的引流规则设置datacenterB,用户请求www.zbj.com的所有流量将转发到datacenterB,实现快速流量切换。
从以上描述可以得出,实施本发明实施例所提供的流量调度方法,通过在每个数据中心流量入口部署Nginx+Lua代理,用于分发各个数据中心的业务流量,根据配置的流量策略管理每个数据中心的流量入口Nginx代理的不同模式转发规则;以实现入口流量可以全局统一动态管理、比例分配、快速切换和流量切换,从而克服现有技术中流量切换缓慢、资源利用率低和影响网站可用性的问题。
基于相同的发明构思,本发明实施例提供了一种基于Nginx+Lua的流量调度设备。如图2所示,该流量调度设备包括网络单元、部署单元和调度单元;
所述网络单元用于:
将各数据中心进行连接,使得每个数据中心的内网网络能够进行互联;
所述部署单元用于:
将各应用服务分别部署在各数据中心上;
在每个数据中心流量入口部署Nginx+Lua代理;
所述调度单元用于:
根据配置的流量策略管理每个数据中心的流量入口Nginx代理的不同模式转发规则;其中,所述转发规则包括用于进行流量分配的引流规则;所述流量策略是基于域名和对应数据中心调度到各个数据中心的后端应用配置所得;
通过ngx_lua读取相应引流规则代理到后端服务,以响应于用户访问各个数据中心入口,用户访问时,通过DNS轮询各个数据中心入口。
进一步地,应用时,各数据中心部署应用服务时,还将各应用服务与对应的域名进行关联。
可选地,作为本发明的另一种优选实施例,如图3所示,上述数据处理设备可以包括:一个或多个处理器101、一个或多个输入设备102、一个或多个输出设备103和存储器104,上述处理器101、输入设备102、输出设备103和存储器104通过总线105相互连接。存储器104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器101被配置用于调用所述程序指令执行上述基于Nginx+Lua的流量调度方法实施例部分的方法。
应当理解,在本发明实施例中,所称处理器101可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备102可以包括键盘等,输出设备103可以包括显示器(LCD等)、扬声器等。
该存储器104可以包括只读存储器和随机存取存储器,并向处理器101提供指令和数据。存储器104的一部分还可以包括非易失性随机存取存储器。例如,存储器104还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器101、输入设备102、输出设备103可执行本发明实施例提供的基于Nginx+Lua的流量调度方法的实施例中所描述的实现方式,在此不再赘述。
需要说明的是,关于流量调度设备更为具体的工作流程,请参考前述方法实施例部分,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的单元和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种基于Nginx+Lua的流量调度方法,其特征在于,应用于多个数据中心,所述方法包括:
将各数据中心进行连接,使得每个数据中心的内网网络能够进行互联;
将各应用服务分别部署在各数据中心上;
在每个数据中心流量入口部署Nginx+Lua代理;
根据配置的流量策略管理每个数据中心的流量入口Nginx代理的不同模式转发规则;其中,所述转发规则包括用于进行流量分配的引流规则;
通过ngx_lua读取相应引流规则代理到后端服务,以响应于用户访问各个数据中心入口。
2.如权利要求1所述的流量调度方法,其特征在于,各数据中心部署应用服务时,还将各应用服务与对应的域名进行关联。
3.如权利要求2所述的流量调度方法,其特征在于,所述流量策略是基于域名和对应数据中心调度到各个数据中心的后端应用配置所得。
4.如权利要求3所述的流量调度方法,其特征在于,用户访问时,通过DNS轮询各个数据中心入口。
5.一种基于Nginx+Lua的流量调度设备,其特征在于,包括网络单元、部署单元和调度单元;
所述网络单元用于:
将各数据中心进行连接,使得每个数据中心的内网网络能够进行互联;
所述部署单元用于:
将各应用服务分别部署在各数据中心上;
在每个数据中心流量入口部署Nginx+Lua代理;
所述调度单元用于:
根据配置的流量策略管理每个数据中心的流量入口Nginx代理的不同模式转发规则;其中,所述转发规则包括用于进行流量分配的引流规则;
通过ngx_lua读取相应引流规则代理到后端服务,以响应于用户访问各个数据中心入口。
6.如权利要求5所述的流量调度设备,其特征在于,各数据中心部署应用服务时,还将各应用服务与对应的域名进行关联。
7.如权利要求6所述的流量调度设备,其特征在于,所述流量策略是基于域名和对应数据中心调度到各个数据中心的后端应用配置所得。
8.如权利要求7所述的流量调度设备,其特征在于,用户访问时,通过DNS轮询各个数据中心入口。
9.一种基于Nginx+Lua的流量调度设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器通过总线相互连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,其特征在于,所述处理器被配置于调用程序指令执行如权利要求1-4任一项所述的方法。
CN202110994608.0A 2021-08-27 2021-08-27 基于Nginx+Lua的流量调度方法及设备 Active CN113726674B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110994608.0A CN113726674B (zh) 2021-08-27 2021-08-27 基于Nginx+Lua的流量调度方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110994608.0A CN113726674B (zh) 2021-08-27 2021-08-27 基于Nginx+Lua的流量调度方法及设备

Publications (2)

Publication Number Publication Date
CN113726674A true CN113726674A (zh) 2021-11-30
CN113726674B CN113726674B (zh) 2023-11-14

Family

ID=78678411

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110994608.0A Active CN113726674B (zh) 2021-08-27 2021-08-27 基于Nginx+Lua的流量调度方法及设备

Country Status (1)

Country Link
CN (1) CN113726674B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106953758A (zh) * 2017-03-20 2017-07-14 北京搜狐新媒体信息技术有限公司 一种基于Nginx服务器的动态配置管理方法及系统
CN107465721A (zh) * 2017-06-27 2017-12-12 国家电网公司 基于双活架构的全局负载均衡方法和系统及调度服务器
CN108965381A (zh) * 2018-05-31 2018-12-07 康键信息技术(深圳)有限公司 基于Nginx的负载均衡实现方法、装置、计算机设备和介质
CN109542659A (zh) * 2018-11-14 2019-03-29 深圳前海微众银行股份有限公司 应用多活方法、设备、数据中心集群及可读存储介质
WO2019061636A1 (zh) * 2017-09-28 2019-04-04 武汉斗鱼网络科技有限公司 调用系统工具的方法、装置、可读存储介质及设备
CN111698174A (zh) * 2020-04-28 2020-09-22 平安普惠企业管理有限公司 流量动态分配方法、装置、设备及存储介质
CN112583734A (zh) * 2020-12-03 2021-03-30 中国移动通信集团内蒙古有限公司 一种突发流量控制方法、装置、电子设备及存储介质
CN113204386A (zh) * 2021-05-19 2021-08-03 猪八戒股份有限公司 基于Nginx+Lua的数据处理方法及设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106953758A (zh) * 2017-03-20 2017-07-14 北京搜狐新媒体信息技术有限公司 一种基于Nginx服务器的动态配置管理方法及系统
CN107465721A (zh) * 2017-06-27 2017-12-12 国家电网公司 基于双活架构的全局负载均衡方法和系统及调度服务器
WO2019061636A1 (zh) * 2017-09-28 2019-04-04 武汉斗鱼网络科技有限公司 调用系统工具的方法、装置、可读存储介质及设备
CN108965381A (zh) * 2018-05-31 2018-12-07 康键信息技术(深圳)有限公司 基于Nginx的负载均衡实现方法、装置、计算机设备和介质
CN109542659A (zh) * 2018-11-14 2019-03-29 深圳前海微众银行股份有限公司 应用多活方法、设备、数据中心集群及可读存储介质
CN111698174A (zh) * 2020-04-28 2020-09-22 平安普惠企业管理有限公司 流量动态分配方法、装置、设备及存储介质
CN112583734A (zh) * 2020-12-03 2021-03-30 中国移动通信集团内蒙古有限公司 一种突发流量控制方法、装置、电子设备及存储介质
CN113204386A (zh) * 2021-05-19 2021-08-03 猪八戒股份有限公司 基于Nginx+Lua的数据处理方法及设备

Also Published As

Publication number Publication date
CN113726674B (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
CN108052675B (zh) 日志管理方法、系统及计算机可读存储介质
CN115516831A (zh) Sd-wan集线器和辐条的自动配设
CN112965700B (zh) 基于路由的微服务处理方法、装置、计算机设备和介质
US20090327460A1 (en) Application Request Routing and Load Balancing
CN111010304A (zh) 一种Dubbo服务与Kubernetes系统集成的方法
CN110224943B (zh) 基于url的流量服务限流方法、电子设备及计算机存储介质
CN113067875B (zh) 基于微服务网关动态流控的访问方法和装置以及设备
CN109451014A (zh) 一种WebService代理系统及其透明代理方法
CN111432247A (zh) 流量调度方法、装置、服务器及存储介质
CN111181865A (zh) 一种基于业务的流量分发方法及系统、存储介质及终端
CN112433863A (zh) 微服务调用方法、装置、终端设备以及存储介质
CN115428514A (zh) 在多个运营商的相邻mec主机之间共享地理集中的工作负荷
CN114979286B (zh) 容器服务的访问控制方法、装置、设备及计算机存储介质
CN115567398A (zh) 一种数据中心网络构建系统及其实现方法
US11323534B2 (en) Concurrency reduction through publish-subscribe patterns
CN115757611A (zh) 大数据集群切换方法、装置、电子设备及存储介质
US20180316572A1 (en) Cloud lifecycle managment
Bertrand‐Martinez et al. Classification and evaluation of IoT brokers: A methodology
CN114363233B (zh) 一种分组路由方法、装置、电子设备及存储介质
CN113204386A (zh) 基于Nginx+Lua的数据处理方法及设备
US20230283695A1 (en) Communication Protocol for Knative Eventing's Kafka components
CN110636149B (zh) 远程访问方法、装置、路由器及存储介质
CN113726674A (zh) 基于Nginx+Lua的流量调度方法及设备
US10942787B2 (en) Instance mapping engine and tools
CN110913018A (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