CN117014375A - Cdn设备自适应流量控制和快速上下线的方法及设备 - Google Patents
Cdn设备自适应流量控制和快速上下线的方法及设备 Download PDFInfo
- Publication number
- CN117014375A CN117014375A CN202311282362.XA CN202311282362A CN117014375A CN 117014375 A CN117014375 A CN 117014375A CN 202311282362 A CN202311282362 A CN 202311282362A CN 117014375 A CN117014375 A CN 117014375A
- Authority
- CN
- China
- Prior art keywords
- cache
- cluster
- offline
- nginx
- message
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000001514 detection method Methods 0.000 claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 42
- 230000008859 change Effects 0.000 claims abstract description 9
- 230000003044 adaptive effect Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 abstract description 17
- 230000000977 initiatory effect Effects 0.000 abstract 1
- 238000011144 upstream manufacturing Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 230000000737 periodic effect Effects 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 239000000523 sample Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002779 inactivation Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请公开了CDN设备自适应流量控制和快速上下线的方法及设备,属于通信技术领域。该方法包括:在Cache第一次上线时,向集群中心发送获取消息,并接收集群中心的响应消息,其中包括已上线nginx对应的前端IP,基于响应消息对nginx发起探测心跳;集群中心向各个Cache和nginx发送下线消息;集群中的Cache在发起探测心跳时,携带对应的流量权重,用于通知对应的nginx进行流量的变更。该方法通过集群中心统一调度和处理Cache和nginx的上线和下线,能够实现集群中设备的灵活配置,并通过Cache携带流量权重,实现Cache的自适应流量控制。
Description
技术领域
本申请属于通信技术领域,特别涉及CDN设备自适应流量控制和快速上下线的方法及设备。
背景技术
目前的CDN***中,每个集群中有n台Cache服务设备,每一台物理设备部署一个nginx软件作为网络接入层server,部署一个Cache软件作为CDN的缓存server,nginx和Cache服务器通过监听不同的网络端口实现区分。
请求接入的时候由nginx接入,所有接入层的nginx服务器的upstream配置完全一致,nginx的upstream配置了所有的Cache的IP+端口,根据内容来进行一致性哈希算法,使得整个集群所有的nginx会将相同的资源的请求都转发给相同的Cache。周期性的给每一个Cache的IP发送特定的请求,根据Cache的相应状态来确定该Cache的服务状态。由于是周期性探测,nginx对于后端Cache的失活有一定的判断逻辑,一般采取连续x次探测失败就将该Cache设定为down(不可用),nginx是通过主动探测来实现集群Cache设备的下线的;Cache设备的上线依赖于修改nginx的upstream的配置,将新的IP地址明文写入nginx的配置,重新启动nginx,才能开启对应的探测,将Cache设备进入正常的探测逻辑。目前,整个集群的运行框架中,Cache软件作为后端,对前端没有任何的权限,完全依赖下游对自己的逻辑处理,而且集群内多个nginx之间是互相独立的,没有相互通知的机制;Cache也无法根据自身压力,调节前端分发给自己的流量权重,即现有技术中无法实现集群中设备的灵活及时的上线和下线,也无法实现自适应流量控制。
针对上述问题,本申请提出CDN设备自适应流量控制和快速上下线的方法及设备。
发明内容
为了解决所述现有技术的不足,本申请提供了CDN设备自适应流量控制和快速上下线的方法及设备,该方法用于解决现有技术中无法实现集群中设备的灵活及时的上线和下线,也无法实现自适应流量控制的技术问题。
本申请所要达到的技术效果通过以下方案实现:
第一方面,本申请实施例提供一种CDN设备自适应流量控制和快速上下线的方法,所述方法包括:
在第一Cache第一次加入集群服务的情况下,所述第一Cache向集群中心发送第一获取消息,其中,所述获取消息中包括所述第一Cache的标识信息,所述第一Cache的执行信息以及所述第一Cache的权重信息;所述第一Cache接收所述集群中心的第一响应消息,所述第一响应消息中包括至少一个nginx对应的前端IP,所述第一Cache基于所述第一响应消息对所述至少一个nginx发起探测心跳,其中,所述至少一个nginx表示集群中已经上线的nginx;
在第二nginx第一次加入集群服务的情况下,所述第二nginx向所述集群中心发送第二获取消息;所述第二nginx接收所述集群中心的第二响应消息,所述第二响应消息中包括至少一个Cache对应的后端IP,所述第二nginx基于所述第二响应消息对所述至少一个Cache发起探测心跳,其中,所述至少一个Cache表示所述集群中已经上线的Cache;
所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,其中,所述目标设备表示将被下线的目标Cache;
所述集群中的Cache在发起探测心跳时,携带对应的流量权重,所述流量权重用于通知对应的nginx进行流量的变更。
在一些实施例中,所述方法还包括:
当所述集群中nginx探测到故障Cache时,通知所述集群中心,所述集群中心则向所述集群中的所有nginx发送一个对所述故障Cache进行探测心跳的命令,用于确认所述故障Cache的状态。
在一些实施例中,所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,包括:
所述集群中心向所述集群中的所有nginx发送下线消息;
各个所述nginx收到所述下线消息之后,修改对应的CacheIP列表;
所述集群中心向所述目标设备发送下线消息;
所述目标设备将对应的探测心跳内容的状态从在线状态修改为离线状态。
在一些实施例中,所述集群中包括多个nginx和多个Cache。
在一些实施例中,所述第一Cache的标识信息表示所述第一Cache的名字,所述第一Cache的执行信息表示所述第一Cache是在线状态或者表示所述第一Cache是离线状态,所述第一Cache的权重信息表示所述第一Cache的期望流量权重。
第二方面,本申请的实施例提供一种CDN设备自适应流量控制和快速上下线的设备,所述设备包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
在第一Cache第一次加入集群服务的情况下,所述第一Cache向集群中心发送第一获取消息,其中,所述获取消息中包括所述第一Cache的标识信息,所述第一Cache的执行信息以及所述第一Cache的权重信息;所述第一Cache接收所述集群中心的第一响应消息,所述第一响应消息中包括至少一个nginx对应的前端IP,所述第一Cache基于所述第一响应消息对所述至少一个nginx发起探测心跳,其中,所述至少一个nginx表示集群中已经上线的nginx;
在第二nginx第一次加入集群服务的情况下,所述第二nginx向所述集群中心发送第二获取消息;所述第二nginx接收所述集群中心的第二响应消息,所述第二响应消息中包括至少一个Cache对应的后端IP,所述第二nginx基于所述第二响应消息对所述至少一个Cache发起探测心跳,其中,所述至少一个Cache表示所述集群中已经上线的Cache;
所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,其中,所述目标设备表示将被下线的目标Cache;
所述集群中的Cache在发起探测心跳时,携带对应的流量权重,所述流量权重用于通知对应的nginx进行流量的变更。
在一些实施例中,所述方法还包括:
当所述集群中nginx探测到故障Cache时,通知所述集群中心,所述集群中心则向所述集群中的所有nginx发送一个对所述故障Cache进行探测心跳的命令,用于确认所述故障Cache的状态。
在一些实施例中,所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,包括:
所述集群中心向所述集群中的所有nginx发送下线消息;
各个所述nginx收到所述下线消息之后,修改对应的CacheIP列表;
所述集群中心向所述目标设备发送下线消息;
所述目标设备将对应的探测心跳内容的状态从在线状态修改为离线状态。
在一些实施例中,所述集群中包括多个nginx和多个Cache。
在一些实施例中,所述第一Cache的标识信息表示所述第一Cache的名字,所述第一Cache的执行信息表示所述第一Cache是在线状态或者表示所述第一Cache是离线状态,所述第一Cache的权重信息表示所述第一Cache的期望流量权重。
第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一项所述的方法。
通过本申请实施例提供的CDN设备自适应流量控制和快速上下线的方法及设备,该方法通过集群中心统一调度和处理Cache和nginx的上线和下线,能够实现集群中设备的灵活配置,并且通过Cache携带流量权重,实现Cache的自适应流量控制。
附图说明
为了更清楚地说明本申请实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例中的现有技术的方法的流程图;
图2为本申请一实施例中的CDN设备自适应流量控制和快速上下线的方法的示意图一;
图3为本申请一实施例中的CDN设备自适应流量控制和快速上下线的方法的示意图二;
图4为本申请一实施例中的电子设备的示意框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,除非另外定义,本申请一个或多个实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
相关技术性解释:
上线:物理设备加入集群,引入流量,进行CDN服务。
下线:物理设备从集群剔除,不影响集群内其他设备,只有下线设备不再引入流量,离开集群,不再进行CDN服务。
nginx:一种开源的高性能接入服务器软件。
Cache(缓存):引申为一种具备缓存能力的服务器软件。
UDP组播:主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据。只有UDP才有广播、组播的传递方式;而TCP是一对一连接通信。多播的重点是高效的把同一个包尽可能多的发送到不同的、甚至可能是未知的设备。但是TCP连接是一对一明确的,只能单播。
心跳:一个组件向另一个组件定期发送请求,确定后者的状态。nginx的upstream配置:nginx的配置的一种,可以决定nginx软件在接入请求后按照特定的设置转发到对应IP的服务器上面。
一致性哈希算法:是一种特殊的哈希算法,目的是解决分布式缓存的问题。在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。
每一个nginx对upstream设置的Cache进行的探活逻辑。
基于nginx的upstream配置健康检查模块。
现有技术中的集群架构如图1所示,其中nginx1和Cache1部署在同一台物理机;nginx2和Cache2部署在同一台物理机;nginx3和Cache3部署在同一台物理机。
请求接入的时候由nginx接入,所有接入层的nginx服务器的upstream配置完全一致,nginx的upstream配置了所有的Cache的IP+端口,根据内容来进行一致性哈希算法,使得整个集群所有的nginx会将相同的资源的请求都转发给相同的Cache。
周期性的给每一个Cache的IP发送特定的请求,根据Cache的相应状态来确定这一Cache的服务状态。由于是周期性探测,nginx对于后端Cache的失活有一定的判断逻辑,一般采取连续x次探测失败就将该Cache设定为down(不可用),nginx是通过主动探测来实现集群Cache设备的下线的。
Cache设备的上线依赖于修改nginx的upstream的配置,将新的IP地址明文写入nginx的配置,重新启动nginx,才能开启对应的探测,将Cache设备进入正常的探测逻辑。
上述方案存在如下问题:
1、Cache软件作为后端,对前端没有任何的权限,完全依赖下游对自己的逻辑处理。
2、前端对后端的探测心跳,完全依赖于前端的配置和周期,生效时间有一个周期性的时间差。
3、一个集群内多个nginx之间是互相独立的,没有相互通知的机制。
4、Cache无法根据自身压力,调节前端分发给自己的流量权重。
总之,现有技术无法实现设备的灵活上线和下线,更无法实现自适应流量控制。因此需要采用本申请中的CDN设备自适应流量控制和快速上下线的方法。
下面结合附图,详细说明本申请的各种非限制性实施方式。
首先,参照图2,对本申请的CDN设备自适应流量控制和快速上下线的方法进行详细说明。
如图2所示,本申请实施例提供CDN设备自适应流量控制和快速上下线的方法,包括:
S101:在第一Cache第一次加入集群服务的情况下,所述第一Cache向集群中心发送第一获取消息,其中,所述获取消息中包括所述第一Cache的标识信息,所述第一Cache的执行信息以及所述第一Cache的权重信息;所述第一Cache接收所述集群中心的第一响应消息,所述第一响应消息中包括至少一个nginx对应的前端IP,所述第一Cache基于所述第一响应消息对所述至少一个nginx发起探测心跳,其中,所述至少一个nginx表示集群中已经上线的nginx;
S102:在第二nginx第一次加入集群服务的情况下,所述第二nginx向所述集群中心发送第二获取消息;所述第二nginx接收所述集群中心的第二响应消息,所述第二响应消息中包括至少一个Cache对应的后端IP,所述第二nginx基于所述第二响应消息对所述至少一个Cache发起探测心跳,其中,所述至少一个Cache表示所述集群中已经上线的Cache;
S103:所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,其中,所述目标设备表示将被下线的目标Cache;
S104:所述集群中的Cache在发起探测心跳时,携带对应的流量权重,所述流量权重用于通知对应的nginx进行流量的变更。本实施例通过Cache携带流量权重,实现Cache的自适应流量控制。
具体地,上述各个步骤并不一定要按照顺序执行,可以按照其他的顺序执行,也就是说步骤的排序并不表示执行顺序的限制。
具体地,所述至少一个nginx表示集群中已经上线的nginx,该至少一个nginx表示集群中所有已经上线的nginx,即获取集群中所有上线的nginx对应的前端IP;所述至少一个Cache表示所述集群中已经上线的Cache,其中至少一个Cache表示所述集群中所有已经上线的Cache,即获取集群中所有上线的Cache对应的后端IP。
在一些实施例中,所述方法还包括:
当所述集群中nginx探测到故障Cache时,通知所述集群中心,所述集群中心则向所述集群中的所有nginx发送一个对所述故障Cache进行探测心跳的命令,用于确认所述故障Cache的状态。
在一些实施例中,所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,包括:
所述集群中心向所述集群中的所有nginx发送下线消息;
各个所述nginx收到所述下线消息之后,修改对应的CacheIP列表;这样,当某一个nginx出现对某一个Cache后端探测出现异常的时候,通过中心通知,主动通知其他nginx对其立刻进行探测,快速做出反应,缩短生效时间;
所述集群中心向所述目标设备发送下线消息;
所述目标设备将对应的探测心跳内容的状态从在线状态修改为离线状态;所述目标设备表示将被下线的目标Cache。
当某一个Cache出现对某一个nginx前端探测出现异常的时候,可以报告集群中心,通过集群中心主动通知其他Cache对某一个nginx立刻进行探测,快速做出反应,缩短生效时间。
本实施例通过集群中心统一调度和处理Cache和nginx的上线和下线。
在一些实施例中,所述集群中包括多个nginx和多个Cache。
在一些实施例中,所述第一Cache的标识信息表示所述第一Cache的名字,所述第一Cache的执行信息表示所述第一Cache是在线状态或者表示所述第一Cache是离线状态,所述第一Cache的权重信息表示所述第一Cache的期望流量权重。
下面参考图3通过示例1来进行说明:
示例1
为了说明,图3中只显示了一台nginx和一台Cache对应的心跳,其中1、2、3为nginx对Cache的心跳,4、5、6为Cache对nginx的心跳;此处为示例性地,对于集群中的其他未通过线条画出的nginx和Cache之间的心跳关系的设备,均适应本方法。
Cache对nginx的心跳中,可以包括Cache的属性,例如标识信息,执行信息以及权重信息,分别用Name 、Action、Weight表示,如下所示:
Name:表示Cache的名字;
Action:表示 Cache的服务状态,在线(alive)或者离线(offline);
Weight:表示Cache的期望流量权重;
示例性地,该属性可以是{“Name”:“Cache1”,“Action”:“alive”,“Weight”:“10”}
示例性地,图3中的1、2、3是nginx周期性对Cache的探测心跳。
示例性地,图3中的4、5、6是Cache周期性对nginx的探测心跳。
图3中的7是nginx1在第一次加入服务的时候,先和中心通信,获取到Cache1,Cache2,Cache3的IP,对其发起探测心跳(注意:7并不是周期性的,只有启动或者重新启动发起一次,当服务状态发生变更的时候和中心通信)。
图3中的8是Cache2 在第一次加入服务的时候,先和中心通信,获取到nginx1,nginx2,nginx3的IP,对其发起探测心跳(注意:8并不是周期性的,只有启动或者重新启动发起一次,当服务状态发生变更的时候和中心通信)。
当新设备在集群服务过程中加入集群的逻辑(即上线)时,nginx从集群中心拉取到所有的Cache IP,展开探测心跳;Cache从集群中心拉取到所有的nginx IP,展开探测心跳。
对于服务中的设备,其并未与中心发生通信,则依赖于收到的探测心跳请求,将对应的IP地址,加入到对应的上下游IP。
对于设备的下线,只需要集群中心告知上游对应的下游其下线即可,即集群中心告知nginx,哪些Cache已下线,这些Cache可以称为目标Cache。
具体地,关于Cache下线:
1、集群中心要求Cache下线,集群中心通知所有的nginx,修改Cache的IP列表,同时集群中心通知该Cache的探测心跳内容的状态从alive修改为offline;
2、Cache由于自身故障,被动下线,这种情况需要nginx的探测心跳探测得知,当一台nginx的探测发现问题,立刻通知集群中心,集群中心会给该集群所有的nginx发送一个对出问题的Cache的IP发送探测的命令,通过集群所有nginx的探测对于这种问题快速发现。
对于流量自适应控制:
Cache的心跳会带有一个权重(weight),权重的默认值从设备集群中心处获得,一旦设备压力大等,会主动降低给nginx发送心跳的时候带的权重,通知nginx降低自己Cache的流量权重。
通过本申请实施例提供的CDN设备自适应流量控制和快速上下线的方法及设备,该方法通过集群中心统一调度和处理Cache和nginx的上线和下线,能够实现集群中设备的灵活配置,并且通过Cache携带流量权重,实现Cache的自适应流量控制。
本申请上述实施例的优点有:
1、nginx探测后端Cache,不再依赖于nginx的upstream明文配置,采用和中心交互的方式获取此时的后端IP,实现动态加载。
2、Cache上线之前要先和中心通信,获取此时线上服务的所有nginx的IP。根据中心的前端IP列表,Cache也对每个IP保持一个周期性的通信心跳。
3、在集群服务过程中,有Cache设备新加入集群的时候,不依赖于修改nginx的配置,Cache自己可通知nginx,自己加入集群。
4、当某一个nginx出现对某一个Cache后端探测出现异常的时候,通过中心通知,主动通知其他nginx对其立刻进行探测,快速做出反应,缩短生效时间。
5、当某一个Cache出现对某一个nginx前端探测出现异常的时候,通过中心通知,主动通知其他Cache对其立刻进行探测,快速做出反应,缩短生效时间。
6、Cache可根据心跳来控制自己的权重,当设备压力大的时候可以自己主动降低权重,做到流量Cache自适应。
第二方面,本申请的实施例提供一种CDN设备自适应流量控制和快速上下线的设备,所述设备包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
在第一Cache第一次加入集群服务的情况下,所述第一Cache向集群中心发送第一获取消息,其中,所述获取消息中包括所述第一Cache的标识信息,所述第一Cache的执行信息以及所述第一Cache的权重信息;所述第一Cache接收所述集群中心的第一响应消息,所述第一响应消息中包括至少一个nginx对应的前端IP,所述第一Cache基于所述第一响应消息对所述至少一个nginx发起探测心跳,其中,所述至少一个nginx表示集群中已经上线的nginx;
在第二nginx第一次加入集群服务的情况下,所述第二nginx向所述集群中心发送第二获取消息;所述第二nginx接收所述集群中心的第二响应消息,所述第二响应消息中包括至少一个Cache对应的后端IP,所述第二nginx基于所述第二响应消息对所述至少一个Cache发起探测心跳,其中,所述至少一个Cache表示所述集群中已经上线的Cache;
所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,其中,所述目标设备表示将被下线的目标Cache;
所述集群中的Cache在发起探测心跳时,携带对应的流量权重,所述流量权重用于通知对应的nginx进行流量的变更。
在一些实施例中,所述方法还包括:
当所述集群中nginx探测到故障Cache时,通知所述集群中心,所述集群中心则向所述集群中的所有nginx发送一个对所述故障Cache进行探测心跳的命令,用于确认所述故障Cache的状态。
在一些实施例中,所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,包括:
所述集群中心向所述集群中的所有nginx发送下线消息;
各个所述nginx收到所述下线消息之后,修改对应的CacheIP列表;
所述集群中心向所述目标设备发送下线消息;
所述目标设备将对应的探测心跳内容的状态从在线状态修改为离线状态。
在一些实施例中,所述集群中包括多个nginx和多个Cache。
在一些实施例中,所述第一Cache的标识信息表示所述第一Cache的名字,所述第一Cache的执行信息表示所述第一Cache是在线状态或者表示所述第一Cache是离线状态,所述第一Cache的权重信息表示所述第一Cache的期望流量权重。
本实施例中的CDN设备自适应流量控制和快速上下线的设备可以实现本申请中的CDN设备自适应流量控制和快速上下线的方法的技术效果,此处不再赘述。
需要说明的是,本申请一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还公开一种电子设备。
具体地,图4示出了本实施例所提供的CDN设备自适应流量控制和快速上下线的方法的电子设备的硬件结构示意图,该设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线 450。其中,处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作***和其他应用程序,在通过软件或者固件来实现本申请实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如,USB、网线等)实现通信,也可以通过无线方式(例如,移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如,处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的CDN设备自适应流量控制和快速上下线的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的CDN设备自适应流量控制和快速上下线的方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的CDN设备自适应流量控制和快速上下线的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以避免使本申请一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种CDN设备自适应流量控制和快速上下线的方法,其特征在于,所述方法包括:
在第一Cache第一次加入集群服务的情况下,所述第一Cache向集群中心发送第一获取消息,其中,所述获取消息中包括所述第一Cache的标识信息,所述第一Cache的执行信息以及所述第一Cache的权重信息;所述第一Cache接收所述集群中心的第一响应消息,所述第一响应消息中包括至少一个nginx对应的前端IP,所述第一Cache基于所述第一响应消息对所述至少一个nginx发起探测心跳,其中,所述至少一个nginx表示集群中已经上线的nginx;
在第二nginx第一次加入集群服务的情况下,所述第二nginx向所述集群中心发送第二获取消息;所述第二nginx接收所述集群中心的第二响应消息,所述第二响应消息中包括至少一个Cache对应的后端IP,所述第二nginx基于所述第二响应消息对所述至少一个Cache发起探测心跳,其中,所述至少一个Cache表示所述集群中已经上线的Cache;
所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,其中,所述目标设备表示将被下线的目标Cache;
所述集群中的Cache在发起探测心跳时,携带对应的流量权重,所述流量权重用于通知对应的nginx进行流量的变更。
2.根据权利要求1所述的CDN设备自适应流量控制和快速上下线的方法,其特征在于,所述方法还包括:
当所述集群中nginx探测到故障Cache时,通知所述集群中心,所述集群中心则向所述集群中的所有nginx发送一个对所述故障Cache进行探测心跳的命令,用于确认所述故障Cache的状态。
3.根据权利要求1或2所述的CDN设备自适应流量控制和快速上下线的方法,其特征在于,所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,包括:
所述集群中心向所述集群中的所有nginx发送下线消息;
各个所述nginx收到所述下线消息之后,修改对应的Cache IP列表;
所述集群中心向所述目标设备发送下线消息;
所述目标设备将对应的探测心跳内容的状态从在线状态修改为离线状态。
4.根据权利要求1所述的CDN设备自适应流量控制和快速上下线的方法,其特征在于,所述集群中包括多个nginx和多个Cache。
5.根据权利要求1所述的CDN设备自适应流量控制和快速上下线的方法,其特征在于,所述第一Cache的标识信息表示所述第一Cache的名字,所述第一Cache的执行信息表示所述第一Cache是在线状态或者表示所述第一Cache是离线状态,所述第一Cache的权重信息表示所述第一Cache的期望流量权重。
6.一种CDN设备自适应流量控制和快速上下线的设备,其特征在于,所述设备包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时执行如下步骤:
在第一Cache第一次加入集群服务的情况下,所述第一Cache向集群中心发送第一获取消息,其中,所述获取消息中包括所述第一Cache的标识信息,所述第一Cache的执行信息以及所述第一Cache的权重信息;所述第一Cache接收所述集群中心的第一响应消息,所述第一响应消息中包括至少一个nginx对应的前端IP,所述第一Cache基于所述第一响应消息对所述至少一个nginx发起探测心跳,其中,所述至少一个nginx表示集群中已经上线的nginx;
在第二nginx第一次加入集群服务的情况下,所述第二nginx向所述集群中心发送第二获取消息;所述第二nginx接收所述集群中心的第二响应消息,所述第二响应消息中包括至少一个Cache对应的后端IP,所述第二nginx基于所述第二响应消息对所述至少一个Cache发起探测心跳,其中,所述至少一个Cache表示所述集群中已经上线的Cache;
所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,其中,所述目标设备表示将被下线的目标Cache;
所述集群中的Cache在发起探测心跳时,携带对应的流量权重,所述流量权重用于通知对应的nginx进行流量的变更。
7.根据权利要求6所述的CDN设备自适应流量控制和快速上下线的设备,其特征在于,所述处理器执行所述计算机程序时还执行如下步骤:
当所述集群中nginx探测到故障Cache时,通知所述集群中心,所述集群中心则向所述集群中的所有nginx发送一个对所述故障Cache进行探测心跳的命令,用于确认所述故障Cache的状态。
8.根据权利要求6或7所述的CDN设备自适应流量控制和快速上下线的设备,其特征在于,所述集群中心向所述集群中的Cache和nginx发送下线消息,所述下线消息用于指示目标设备的下线,包括:
所述集群中心向所述集群中的所有nginx发送下线消息;
各个所述nginx收到所述下线消息之后,修改对应的Cache IP列表;
所述集群中心向所述目标设备发送下线消息;
所述目标设备将对应的探测心跳内容的状态从在线状态修改为离线状态。
9.根据权利要求6所述的CDN设备自适应流量控制和快速上下线的设备,其特征在于,所述集群中包括多个nginx和多个Cache。
10.根据权利要求6所述的CDN设备自适应流量控制和快速上下线的设备,其特征在于,所述第一Cache的标识信息表示所述第一Cache的名字,所述第一Cache的执行信息表示所述第一Cache是在线状态或者表示所述第一Cache是离线状态,所述第一Cache的权重信息表示所述第一Cache的期望流量权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311282362.XA CN117014375B (zh) | 2023-10-07 | 2023-10-07 | Cdn设备自适应流量控制和快速上下线的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311282362.XA CN117014375B (zh) | 2023-10-07 | 2023-10-07 | Cdn设备自适应流量控制和快速上下线的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117014375A true CN117014375A (zh) | 2023-11-07 |
CN117014375B CN117014375B (zh) | 2024-02-09 |
Family
ID=88563971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311282362.XA Active CN117014375B (zh) | 2023-10-07 | 2023-10-07 | Cdn设备自适应流量控制和快速上下线的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117014375B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109308221A (zh) * | 2018-08-02 | 2019-02-05 | 南京邮电大学 | 一种基于WebSocket长连接的Nginx动态负载均衡方法 |
CN110113399A (zh) * | 2019-04-24 | 2019-08-09 | 华为技术有限公司 | 负载均衡管理方法及相关装置 |
US20200137151A1 (en) * | 2017-06-30 | 2020-04-30 | Huawei Technologies Co., Ltd. | Load balancing engine, client, distributed computing system, and load balancing method |
CN113760975A (zh) * | 2020-09-21 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 本地缓存处理方法、装置、设备及计算机可读存储介质 |
CN114143324A (zh) * | 2021-10-27 | 2022-03-04 | 上海卓悠网络科技有限公司 | 一种基于应用市场架构的负载均衡方法及设备 |
CN114584545A (zh) * | 2022-03-03 | 2022-06-03 | 京东科技信息技术有限公司 | 数据管理方法、装置、***、存储介质及电子设备 |
-
2023
- 2023-10-07 CN CN202311282362.XA patent/CN117014375B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200137151A1 (en) * | 2017-06-30 | 2020-04-30 | Huawei Technologies Co., Ltd. | Load balancing engine, client, distributed computing system, and load balancing method |
CN109308221A (zh) * | 2018-08-02 | 2019-02-05 | 南京邮电大学 | 一种基于WebSocket长连接的Nginx动态负载均衡方法 |
CN110113399A (zh) * | 2019-04-24 | 2019-08-09 | 华为技术有限公司 | 负载均衡管理方法及相关装置 |
CN113760975A (zh) * | 2020-09-21 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 本地缓存处理方法、装置、设备及计算机可读存储介质 |
CN114143324A (zh) * | 2021-10-27 | 2022-03-04 | 上海卓悠网络科技有限公司 | 一种基于应用市场架构的负载均衡方法及设备 |
CN114584545A (zh) * | 2022-03-03 | 2022-06-03 | 京东科技信息技术有限公司 | 数据管理方法、装置、***、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117014375B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11175974B2 (en) | Management of a fault condition in a computing system | |
US8108623B2 (en) | Poll based cache event notifications in a distributed cache | |
US9270521B2 (en) | Provisioning and managing a cluster deployed on a cloud | |
JP6763580B2 (ja) | 分散記憶システムをアップグレードするための方法および装置 | |
CN107018159B (zh) | 业务请求处理方法及装置、和业务请求方法及装置 | |
CN108156013A (zh) | 一种页面服务容灾方法、装置及电子设备 | |
US11206673B2 (en) | Priority control method and data processing system | |
CN111984289A (zh) | 一种服务更新方法、装置、设备及存储介质 | |
CN104065526A (zh) | 一种服务器故障报警的方法和装置 | |
JP7191080B2 (ja) | アプリケーション動作要求の解析を介したアプリケーション機能のリカバリ | |
CN111726388A (zh) | 一种跨集群高可用的实现方法、装置、***及设备 | |
CN110096664A (zh) | 分布式文本信息处理方法、装置、***、设备及存储介质 | |
CN114265753A (zh) | 消息队列的管理方法、管理***和电子设备 | |
US11163630B2 (en) | Using real-time analytics to manage application features | |
CN103475520B (zh) | 一种分布式网络中的事务处理控制方法及装置 | |
CN116016276A (zh) | 服务器健康状态检测方法和装置 | |
CN117014375B (zh) | Cdn设备自适应流量控制和快速上下线的方法及设备 | |
CN111835578B (zh) | 信息传输管理方法、信息传输管理装置及可读存储介质 | |
US10348589B2 (en) | Managing networks and machines that deliver digital content | |
CN114143728B (zh) | 消息处理方法、通信***、电子设备和存储介质 | |
US9632890B2 (en) | Facilitating N-way high availability storage services | |
CN115658745A (zh) | 数据处理方法、装置、计算机设备和计算机可读存储介质 | |
EP3685567A1 (en) | Load shedding of traffic based on current load state of target capacity | |
CN110809064A (zh) | 一种ip地址切换方法、装置及*** | |
CN111064608A (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 |