<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [Lars源代碼](https://github.com/aceld/Lars) https://github.com/aceld/Lars # **Lars** (**L**oad balance **A**nd **R**emote service schedule **S**ystem) # 系統開發環境: `Linux` : Ubuntu18.04 `protobuf` : libprotoc 3.6.1版本及以上 `mysql`: mysql Ver 14.14 Distrib 5.7.27 版本及以上 `g++`: (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 版本及以上 # 第1章-概述 Lars是一個簡單、易用、高性能的服務間遠程調用管理、調度、負載均衡系統。 ## 1) 優勢 1. **性能強悍** 集群支持千萬并發鏈接,滿足用戶的海量業務訪問需求。 2. **高可用** 采用集群化部署,支持多可用區的容災,無縫實時切換。 3. **靈活擴展** 自動分發,與彈性伸縮無縫集成,靈活擴展用戶用于的對外服務能力。 4. **簡單易用** 快速部署、實時生效,支持多種協議,多種調度算法,用戶可以高效的管理和調整服務分發策略等。 ## 2) 應用場景 ### (1)、大型門戶網站 ? 針對大型門戶網站訪問量高的特點,通過彈性負載均衡將用戶的訪問流量均勻的分發到多個后端云服務器上,確保業務快速平穩的運行 #### 優勢 - 靈活擴展 可根據實際的用戶訪問量,自動擴展負載分發能力 - 高性能 集群支持高并發連接,滿足海量訪問量訴求 ![](https://img.kancloud.cn/66/73/667380163be0e1bd1e73523aa7204fa2_731x671.png) ### (2)、跨可用區同城容災 ? 彈性負載均衡可將流量跨可用區進行分發,建立實時的同城容災機制,滿足銀行貿易等企業對系統的高可用性要求。 #### 優勢 - 靈活擴展 可根據實際的用戶訪問量,自動擴展負載分發能力 - 同城容災 支持跨可用區的雙活容災,實現無縫實時切換 ![](https://img.kancloud.cn/32/8a/328a0b33bc530e9d1514ef944dab4a37_1092x711.png) ### (3)、電商搶購 ? 電商業務呈現出較強的潮汐效應。Lars通過和彈性伸縮等服務的無縫集成,自動創建后端云服務器,將流量自動分發到新的云服務器,緩解了促銷高峰時期的系統壓力。 #### 優勢 - 彈性伸縮 根據業務流量實時創建或移除云服務器 - 高可用 通過健康檢查快速屏蔽異常云服務器,確保業務高可用 - 高性能 集群支持高并發連接,滿足海量訪問量訴求 ![](https://img.kancloud.cn/5a/b8/5ab84077f370141ee37e00bb2ebd6d7c_1071x721.png) ## 3) Lars系統總體架構 ? 對于一個部門的后臺,為增強靈活性,一個服務可以被抽象為命令字:`modid+cmdid`的組合,稱為**一個模塊**,而這個服務往往有多個服務節點,其所有服務節點的地址集合被稱為這個模塊下的**路由**,節點地址簡稱為節點 - `modid`:標識業務的大類,如:“直播列表相關” - `cmdid`:標識具體服務內容,如:“批量獲取直播列表” ? 業務代碼利用modid,cmdid,就可以調用對應的遠程服務一個Lars系統包含一個DNSService,一個Report Service,以及部署于每個服務器的LoadBalance Agent,業務代碼通過API與ELB系統進行交互 **API** :根據自身需要的`modid,cmdid`,向ELB系統獲取節點、匯報節點調用結果;提供`C++`、`Java`、`Python`接口 **LoadBalance Agent**:運行于每個服務器上,負責為此服務器上的業務提供節點獲取、節點狀態匯報、路由管理、負載調度等核心功能 **DNSService** : 運行于一臺服務器上(也可以用LVS部署多實例防單點),負責`modid,cmdid`到節點路由的轉換 **Report Service** : 運行于DNSService同機服務器上,負責收集各`modid,cmdid`下各節點調用狀況,可用于觀察、報警 `modid,cmdid`數據由`Mysql`管理,具體SQL腳本在`common/sql`路徑下 至于`modid,cmdid`的注冊、刪除可以利用Web端操作MySQL。 ![](https://img.kancloud.cn/1a/47/1a47522873f562dccbe08f45e60c131a_1211x880.png) 如圖,每個服務器(虛線)部署了一臺LoadBalance Agent,以及多個業務服務 1. 開發者在Web端注冊、刪除、修改`modid,cmdid`的路由信息,信息被寫入到MySQL數據庫; 2. 服務器上每個業務biz都把持著自己需要通信的遠程服務標識`modid+cmdid`,每個biz都向本機LoadBalance Agent獲取遠程節點,進而可以和遠程目標服務通信,此外業務模塊會匯報本次的節點調用結果給LoadBalance Agent; 3. LoadBalance Agent負責路由管理、負載均衡等核心任務,并周期性向DNSService獲取最新的路由信息,周期性把各`modid,cmdid`的各節點一段時間內的調用結果傳給Report Service 4. DNSService監控MySQL,周期性將最新路由信息加載出來; 5. Report Service將各`modid,cmdid`的各節點一段時間內的調用結果寫回到MySQL,方便Web端查看、報警。 --- ### 關于作者: 作者:`Aceld(劉丹冰)` mail: [danbing.at@gmail.com](mailto:danbing.at@gmail.com) github: [https://github.com/aceld](https://github.com/aceld) 原創書籍: [http://www.hmoore.net/@aceld](http://www.hmoore.net/@aceld) ![](https://img.kancloud.cn/b0/d1/b0d11a21ba62e96aef1c11d5bfff2cf8_227x227.jpg) >**原創聲明:未經作者允許請勿轉載, 如果轉載請注明出處**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看