网站首页 > 精选教程 正文
我们前一篇文章: Nginx最重要也是最基本的负载均衡策略:加权Round-Robin介绍了Nginx中的加权round-robin负载均衡算法。
它可以根据上游服务的能力,按照权重 转发不同比例的请求。
但是无法做到某一类请求 只请求到某一台上游服务。如:uid=1的请求都在A服务上, 某个ip的用户都请求在同一服务上。
这种场景,Nginx中有2个模块可以帮助我们来解决。
upstream_ip_hash:看名字就知道 这是基于IP地址进行hash的。它是去拿remote_addr里的值,作为hash算法的关键字,再根据hash算法后的值映射到某一台上游服务器。如果经过了代理的话,我们前面也介绍了可以通过realip模块修改remote_addr的值。
Syntax: ip_hash;
Default: —
Context: upstream
upstream_hash:这个模块不局限于仅仅通过客户端ip地址进行hash。可以指定任意关键字进行hash算法映射到指定上游服务器中。关键字可以是变量,也可以是字符串。
Syntax: hash key [consistent];
Default: —
Context: upstream
现在我们发现这2个模块可以将某一类请求转发到指定上游服务,无论这台上游服务是否正常在线。
就算上游服务中某一台挂了。也不能将其直接从upstream列表中移除。因为移除之后,会导致原有的hash算法发生变化,就会导致原本upstream到A的 现在到B了。从而造成严重的后果。
看到这个场景,有经验的小伙伴都知道 为了解决这种问题。一致性hash算法可以有效缓解这类问题。明天我们再来学习一致性hash在Nginx中的应用。
猜你喜欢
- 2024-10-10 vue-router的hash模式和history模式
- 2024-10-10 面试官:你对Redis缓存了解吗?面对这5道面试题是否有很多问号?
- 2024-10-10 K8s笔记(六):了解控制器——Deployment
- 2024-10-10 nginx服务器session共享常见解决办法
- 2024-10-10 面试官:Redis缓存了解吗?面对这11道题是否有很多问号?
- 2024-10-10 nginx sticky 实现基于cookie 的负载均衡
- 2024-10-10 精品推荐!Nginx负载均衡—如何自定义URL中的hash key
- 2024-10-10 Redis 选择hash还是string 存储数据?
- 2024-10-10 Nginx基本数据结构之队列(Queue),散列(Hash)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)