[發明專利]一種基于性能監控系統和DockerSwarm的動態負載均衡集群系統在審
| 申請號: | 201711191472.X | 申請日: | 2017-11-24 |
| 公開(公告)號: | CN107819632A | 公開(公告)日: | 2018-03-20 |
| 發明(設計)人: | 華飛君 | 申請(專利權)人: | 鄭州云海信息技術有限公司 |
| 主分類號: | H04L12/24 | 分類號: | H04L12/24;H04L29/08 |
| 代理公司: | 濟南舜源專利事務所有限公司37205 | 代理人: | 張亮 |
| 地址: | 450000 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 性能 監控 系統 dockerswarm 動態 負載 均衡 集群 | ||
技術領域
本發明涉及服務器管理領域,具體涉及一種基于性能監控系統和Docker Swarm的動態負載均衡集群系統。
背景技術
容器Docker是運行在操作系統上的單個進程,應用需要通過多個容器提供服務,這樣就組建成了集群,對外仍然需要通過統一接口提供服務,從而屏蔽集群內部的相關容器變化,這樣就需要負載均衡進行相關操作。現在企業產品以HAproxy實現負載路由和均衡的功能,比如PCF、openshift和阿里飛天、華為產品等。當容器啟動時,將相關信息注冊到一個統一的管理中心比如etcd中,在HAProxy中需要有進程監聽etcd中的集群信息變化,當有集群變化時,監聽進程會自動修改HAproxy的backend相關信息,這樣才能夠實現負載均衡的自動監控和修改。
Docker自誕生以來,在很長的一段時間內只能在單機上運行,跨主機能力的薄弱,這直接導致Docker容器與host的緊耦合,這種情況下,Docker容器的靈活性很難令人滿意,容器的遷移、分組等都成為很難實現的功能點。在Docker 1.12中,Swarm模式允許將一組Docker主機組合成一個群集,提供一種容錯、自我修復的分散式架構。負載均衡是Swarm模式中新增加的最重要的一個特性,不管什么時候在Swarm集群內創建了新的服務,這個服務都會獲得虛擬IP(VIP)地址。不管什么時候嘗試對特定VIP提出需求,Swarm負載均衡器都會把這一需求分配給特定服務中的某一容器。除了虛擬ip(vip)之外,Docker也提供了DNS Round-Robin(dnsrr)的負載均衡。Swarm模式同時也提供了內置的Discovery服務,這樣集群的搭建不需要再依賴外部的Discovery服務,比如consul或etcd。通過編寫Docker-compose.yml配置文件,可以聲明一組服務及每個服務實際需要啟動的容器個數。Docker集群負責將其中的微服務擴展至對應狀態并通過服務所對應的容器實現負載平衡;Docker集群還會自動地維護整個服務的狀態,比如聲明了某個服務需要10個容器,在其中的一些崩潰后,Docker會創建并嘗試重新分配新的容器,來保證容器達到預期的數量。
雖然Docker均衡負載法是一種極為優秀的機制,不過它也存在著限制和問題。使用Docker部署集群時,因為每個服務可以啟動的容器個數是事先預定的。一旦服務部署好,所有的負載就落在了這些預定的容器上,但這個集群的規模很可能和當前的應用場景不匹配,有可能已經不堪重荷也可能啟動了太多容器造成資源浪費。
基于上述問題,本申請發明了一種基于性能監控系統和Docker Swarm的動態負載均衡集群系統,通過Docker的API(Application Programming Interface,應用程序編程接口)動態地改變集群的規模,則既能保證服務的響應速度也能避免啟動過多容器造成資源浪費。
發明內容
本發明的主要實現思路為,雖然部署服務時,在配置文件里定義了集群的規模,但Docker提供了API,通過這些接口可隨意控制集群規模。如果在集群中增加負載度量的機制,結合負載的實際情況,通過Docker的API動態地改變集群的規模,則既能保證服務的響應速度也能避免啟動過多容器造成資源浪費。
具體地,本申請請求保護一種基于性能監控系統和Docker Swarm的動態負載均衡集群系統,其特征在于,該動態負載均衡集群系統包含以下模塊:
Service Router模塊,用于為集群中聲明的服務提供路由負荷統計;
Docker Swarm模塊,用于負載均衡和服務發現;
Promethues模塊,用于告警定義及報警;
AlertManger模塊,用于報警管理;
Replicator模塊,是自定義的告警接受器;
當用戶需要請求某個服務時,先向Serivce Router模塊發送服務請求,并將服務名及請求參數發給Serivce Route模塊;Service Router模塊使用服務名向Docker Swarm模塊查詢服務信息,然后將請求信息發送給Docker Swarm模塊對象,同時,Service Router模塊會記錄該次請求信息并通過Promethues模塊的客戶端庫,將數據提供給Promethues模塊服務端;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于鄭州云海信息技術有限公司,未經鄭州云海信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711191472.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種設備異常檢測方法、裝置及設備
- 下一篇:一種快速發現并處理網絡故障的方法





