加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

6个MySQL GUI工具

发布时间:2021-02-18 13:38:40 所属栏目:外闻 来源:互联网
导读:负载均衡策略对所有 worker 进程生效:upstream_zone 模块 上面说的所有的负载均衡算法对于 worker 进程来说都是独立的,每个 worker 进程之间并不互通,这样在很多时候并不是我们期望的。 我们期望的应该是负载均衡算法对所有的 worker 进程生效。 功能:分

负载均衡策略对所有 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 模块提供的。

  • 功能:从所有上游服务器中,找出当前并发连接数最少的一个,将请求转发到它如果出现多个最少连接服务器的连接数都是一样的,使用 rr 算法
  • 模块: ngx_http_upstream_least_conn_module ,通过 --without-http_upstream_ip_hash_module 禁用模块

指令的用法也很简单,直接在 upstream 模块中开启 least_conn 指令即可。

 

基于 IP 或者基于自定义 key 的 hash 算法有一个严重的问题,那就是当上游服务器挂掉的话,Nginx 依然会向这台服务器发请求,这是因为,如果负载的不同的服务器上去,可能会得到异常的响应,同时还可能导致大量的路由变更。下面的一致性哈希可以解决这个问题。

一致性哈希算法:hash 模块

刚才说了基于 IP 的哈希算法存在一个问题,那就是当有一个上游服务器宕机或者扩容的时候,会引发大量的路由变更,进而引发连锁反应,导致大量缓存失效等问题。那么为什么会造成这种情况呢?

  • 假设我们基于 key 来做 hash,现在有 5 台上游服务器,如果基于最简单的 hash 算法对 key 取模,会将 key 和 server 一一对应起来。

这里面不得不提到的一个模块就是 realip 模块,哈希算法是根据 remote_addr 这个变量的值来进行哈希的,这个变量已经出现了好多次了,可见是多么常用的一个变量。不熟悉的还是到前面Nginx 的 11 个阶段 重新复习一下。

还有另外一个模块 upstream_hash 模块,这个模块可以基于任意的关键字实现 hash 算法的复杂均衡。

基于任意关键字实现 hash 算法的负载均衡:upstream_hash 模块

  • 功能:通过指定关键字作为 hash key,基于 hash 算法映射到特定的上游服务器中关键字可以含有变量、字符串可以使用 rr 算法的参数
  • 模块: ngx_http_upstream_hash_module ,通过 --without-http_upstream_ip_hash_module 禁用模块

指令的话就是 hash 指令,后面可以跟关键字作为 key。


 


(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读