一种基于Nginx的热点数据调度处理方法

Tianyiyun · · 961 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

本文分享自天翼云开发者社区《一种基于Nginx的热点数据调度处理方法》,作者:康****彬

一、应用场景

基于Nginx的热点数据调度处理,热点节点数据负载均衡处理,减少热点节点压力,提高处理和访问效率;每一个节点的nginx服务接收大量的访问,但是每个节点处理请求都有一个峰值,当请求数达到峰值时,后续请求的处理效率就会有一定的下降,为了保证请求能及时处理,热点节点会触发请求调度策略,转发请求到非热点节点进行处理,若无非热点节点,则触发分布式节点策略,备机节点会启动Nginx服务处理,并接收热点节点转发过来的请求,从而提升访问及处理效率。

二、解决的问题

解决大量http请求同一个Nginx节点繁忙的问题,做到快速响应。 解决Nginx集群每个节点超负荷接收请求的问题,自动触发分布式策略处理。 解决现有实现方案可能存在的单点失效、配置不灵活的问题。

三、部署流程图

1、客户端:用户通过客户端发起HTTP请求。

2、Nginx主机:负责接收客户端 的HTTP请求。

3、Nginx备机:等待被Agent唤 醒的空闲Nginx节点。

4、Agent代理主机:负责和Nginx节点服务进行交互,包括启动空闲Nginx备机、注销Nginx节点服务等。

5、Agent代理备机:作为Agent主机的备用机器,Agent主机宕机的时候,会自动启动备机作为主机,然后发出告警。

6、Redis缓存:存放策略配置以及主机IP访问量等信息。

四、主要流程图

主要流程如下:

 Nginx服务接收到客户端HTTP请求之后,先读取redis中该请求IP的总访问量,判断如果达到配置策略的峰值,则需要获取峰值策略判断,如果配置的是控制访问策略,则拒绝该IP的请求;如果配置的是非热点访问策略,则通知Agent转发到非热点Nginx节点;如果全部Nginx节点都达到峰值,则请求Agent发送到备用的Nginx节点上。

961 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传