{"componentChunkName":"component---src-templates-blog-post-js","path":"/blog/2020-07-05-load-balance/","result":{"data":{"markdownRemark":{"id":"2a504f7b-a2f6-5a1f-8b4a-90679d9ea952","html":"<h1>负载均衡（Load Balance）</h1>\n<p>一般通过集群冗余服务器来保证服务的高可用，这时就需要解决一个问题 - 分发请求。</p>\n<h2>1 HTTP 重定向负载均衡</h2>\n<p>请求发送到负载均衡服务器，负载均衡服务器选择处理的集群服务器，要求客端重定向。</p>\n<h3>1.1 缺点</h3>\n<p>每次请求需要两次 http 交互。</p>\n<h2>2 DNS 负载均衡</h2>\n<p>通过域名管理配置多个 IP 地址，用户访问时会解析出不同的 IP 地址。\b当前环境下，客户端会缓存第一次获取到的 IP ，在后续请求中不会重复的请求 DNS 服务器。 常用做负载均衡器的负载。</p>\n<h2>3 反向代理负载均衡</h2>\n<p>反向代理服务器开启负载均衡功能。可以在小行网站使用。</p>\n<h3>3.1 缺点</h3>\n<ul>\n<li>可代理服务器上限低</li>\n<li>代理 http 请求，代理服务器本身压力大</li>\n</ul>\n<h2>4 IP 负载均衡</h2>\n<p>负载均衡服务器，管理数据包修改 ip 地址，接收返回 http 请求和相应。接收到客户端请求，保存外部 ip 地址，并将 ip 地址请求修改为自身 ip，请求应用服务器。应用服务器处理请求，返回 http 响应给负载均衡服务器，负载均衡服务器再次修改 ip，将 http 响应返回给客户端。</p>\n<h3>4.1 缺点</h3>\n<ul>\n<li>请求和响应都需要通过负载均衡服务器，响应体大的话，压力依旧比较大。</li>\n</ul>\n<h2>5 数据链路层负载均衡</h2>\n<p>应用服务器设置统一的虚拟 IP 地址，负载均衡服务器接收来自客户端的请求，通过应用服务器不同的 mac 地址来选择服务器。http 响应不会经过负载均衡服务器。大型网站主要负载均衡模式，又称负载均衡三角模式。</p>\n<p>Linux 新版本默认集成了 LVS，运维人员维护。</p>\n<h2>6 负载均衡算法</h2>\n<h3>6.1 轮询</h3>\n<h3>6.2 加权轮询</h3>\n<h3>6.3 随机</h3>\n<h3>6.4 最少链接</h3>\n<h3>6.5 源地址散列</h3>","frontmatter":{"date":"July 05, 2020","title":"负载均衡","description":"","tags":null}}},"pageContext":{"id":"2a504f7b-a2f6-5a1f-8b4a-90679d9ea952"}}}