6个MySQL GUI工具
负载均衡策略对所有 worker 进程生效:upstream_zone 模块 上面说的所有的负载均衡算法对于 worker 进程来说都是独立的,每个 worker 进程之间并不互通,这样在很多时候并不是我们期望的。 我们期望的应该是负载均衡算法对所有的 worker 进程生效。 功能:分配出共享内存,将其他 upstream 模块定义的负载均衡策略数据、运行时每个上游服务器的状态数据存放在共享内存上,以对所 Nginx worker 进程生效 模块: ngx_http_upstream_zone_module ,通过 --without-http_upstream_ip_hash_module 禁用模块
一个指令,指定 zone 的名字以及对应的大小: 这里只需要指明 consistent 参数即可。 最少连接数算法 再来看一个最少连接数算法。这个算法顾名思义,它会优先选择连接最少的上游服务器,是由 upstream_least_conn 模块提供的。
指令的用法也很简单,直接在 upstream 模块中开启 least_conn 指令即可。 基于 IP 或者基于自定义 key 的 hash 算法有一个严重的问题,那就是当上游服务器挂掉的话,Nginx 依然会向这台服务器发请求,这是因为,如果负载的不同的服务器上去,可能会得到异常的响应,同时还可能导致大量的路由变更。下面的一致性哈希可以解决这个问题。 一致性哈希算法:hash 模块 刚才说了基于 IP 的哈希算法存在一个问题,那就是当有一个上游服务器宕机或者扩容的时候,会引发大量的路由变更,进而引发连锁反应,导致大量缓存失效等问题。那么为什么会造成这种情况呢?
这里面不得不提到的一个模块就是 realip 模块,哈希算法是根据 remote_addr 这个变量的值来进行哈希的,这个变量已经出现了好多次了,可见是多么常用的一个变量。不熟悉的还是到前面Nginx 的 11 个阶段 重新复习一下。 还有另外一个模块 upstream_hash 模块,这个模块可以基于任意的关键字实现 hash 算法的复杂均衡。 基于任意关键字实现 hash 算法的负载均衡:upstream_hash 模块
指令的话就是 hash 指令,后面可以跟关键字作为 key。 (编辑:通化站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |