负载均衡

论坛 期权论坛     
选择匿名的用户   2021-5-30 02:54   464   0
<div class="entry">
<p>一个了不起的创意会产生一个很棒的产品,如果它一炮走红,你发现手中的是下一个facebook 或者twitter,而且随着用户越来越多,会变得越来越慢,该怎么办呢?对全栈而言,解决这类问题的一个重要技能就是——负载均衡。</p>
<h2 id="什么是负载均衡">什么是负载均衡</h2>
<p>负载(load)一词起源于典型系统,指连接在电路中消耗电能的装置,负载(用电器)的功能是把电能转变为其他形式能。引申出来,一个是实体,一个转化。</p>
<p>于是,对于实体,有了通信帧或者报文中数据字段的内容被称为信息负载(payload),网络负载指的就是网络中继承载的流量以及网络设备承载的用户量。</p>
<p>转化被进一步阐释为资源的使用情况,系统平均负载是CPU的Load 即workload,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息。</p>
<p>了解了负载,那么负载均衡就容易理解了。wiki百科给出的定义是这样的:</p>
<blockquote>
  <p>负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软件和硬件来完成。</p>
</blockquote>
<p>并且,wiki百科自身的系统就使用了负载均衡。</p>
<p><img alt="wikipedia" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-edc8d10fc9dc42b86c0a211a75c056ac.png" title=""></p>
<p>每一种技术都有它应用的场景和领域,负载均衡主要解决的是系统性能问题。但是,了解了根源,就可以知道不能够一提到性能问题就非负载均衡莫属,如果负载减少了,可能少一点均衡也可以解决问题,这样的技术例如缓存。</p>
<h2 id="基于dns的负载均衡">基于DNS的负载均衡</h2>
<p>基于DNS的负载均衡是负载均衡的最简方法,可以说是穷人的负载均衡。</p>
<p>DNS会将域名映射为IP地址,反之亦然。所有核心DNS服务器都是集群,用的最多的DNS服务器大概就是BIND了。查询DNS服务器时,推荐使用dig;查询DNS解析时,推荐使用nslookup。 使用DNS缓存可以提高DNS解析的性能。Dig 在mac上的使用示例如下:<br> <img alt="dig 用法" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-9297f8c69727bbf413171a73f095d9bf.jpeg" title=""></p>
<p>对于DNS实现的负载均衡非常简单,采用轮转的方式,只要为所要服务的域名增加多个A记录即可。<br> 例如:</p>
<div class="crayon-syntax crayon-theme-github crayon-font-monaco crayon-os-pc print-yes notranslate" id="crayon-58606bc5d165f351738217" style="margin-top:12px; margin-bottom:12px; font-size:13px!important; line-height:15px!important; height:auto">
  <div class="crayon-toolbar" style="font-size:13px!important; height:19.5px!important; line-height:19.5px!important">
   <span class="crayon-title"></span>
   <div class="crayon-tools" style="font-size:13px!important; height:19.5px!important; line-height:19.5px!important">
    <div class="crayon-button crayon-nums-button crayon-pressed" title="切换是否显示行编号">
     <div class="crayon-button-icon"></div>
    </div>
    <div class="crayon-button crayon-plain-button" title="纯文本显示代码">
     <div class="crayon-button-icon"></div>
    </div>
    <div class="crayon-button crayon-wrap-button" title="切换自动换行">
     <div class="crayon-button-icon"></div>
    </div>
    <div class="crayon-button crayon-expand-button" style="" title="点击展开代码">
     <div class="crayon-button-icon"></div>
    </div>
    <div class="crayon-button crayon-copy-button" title="复制代码">
     <div class="crayon-button-icon"></div>
    </div>
    <div class="crayon-button crayon-popup-button" title="在新窗口中显示代码">
     <div class="crayon-button-icon"></div>
    </div>
    <span class="crayon-language">Shell</span>
   </div>
  </div>
  <div class="crayon-info" style="min-height:18.2px!important; line-height:18.2px!important">
  </div>
  <div class="crayon-plain-wrap">
   <textarea class="crayon-plain print-no" style="-moz-tab-size: 4; font-size: 13px ! important; line-height: 15px ! important; z-index: 0; opacity: 0;">abel.com. IN A 168.168.168.168

abel.com. IN A 168.168.168.168

abel.com. IN A 168.168.168.168

abel.com. IN A 168.168.168.168</textarea>
  </div>
  <div class="crayon-main" style="position:relative; z-index:1">
   <table class="crayon-table" style=""><tbody><tr class="crayon-row"><td class="crayon-nums">
       <div class="crayon-nums-content" style="font-size:13px!important; line-h
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP