??隨著互聯(lián)網+、智能制造等大數(shù)據(jù)應用的發(fā)展,傳統(tǒng)的企業(yè)信息化單體架構必定繞不過以下兩個坎:
* 單機資源瓶勁造成系統(tǒng)響應慢,需要高成本升級硬件來解決;
* 單機故障造成系統(tǒng)不可用,需要較長的時間來恢復故障。
??所以將來的企業(yè)信息化基礎架構必定是分布式的,AppBoxFuture設計之初就確立了必須滿足簡單、低成本
的分布式架構原則,能夠利用普通硬件構建具備橫向擴展能力的集群。作者最近在設計與實現(xiàn)集群的運維管理功能,下面讓我們來體驗已實現(xiàn)的部分功能。
一、測試環(huán)境
二、創(chuàng)建集群
1. 啟動集群:
在VM1上執(zhí)行:
sudo ./appbox --init=10.211.55.3:9000 --peer=1.1.1
在VM2及VM3分別執(zhí)行:
sudo ./appbox --join=10.211.55.3:9000 --peer=1.1.2 sudo ./appbox
--join=10.211.55.3:9000 --peer=1.1.3
執(zhí)行完后,打開瀏覽器輸入網址“http://任意節(jié)點:5000/ops”進入運維管理登錄界面,用戶名:Admin
<http://任意節(jié)點:5000/ops”進入運維管理登錄界面,用戶名:Admin>
密碼:760wb,可以看到集群包含3個節(jié)點,其中第一個是元數(shù)據(jù)節(jié)點(MetaNode)。
運維管理系統(tǒng)由框架自身實現(xiàn),可以自由修改相關模型進行自定義。
2. 提升副本因子:
依次點擊“SetAsMeta”將其他兩個節(jié)點設置為MetaNode,
點“刷新”按鈕后可以看到另外兩個節(jié)點也轉化為MetaNode。然后點擊“提升副本因子”按鈕將系統(tǒng)自帶的實體存儲提升為副本因子3,即表的分區(qū)存在3份數(shù)據(jù)。稍候刷新可以看到如下圖所示集群每個節(jié)點上都存在相同數(shù)量的分區(qū),當然如果集群包含其他非MetaNode,系統(tǒng)會盡量將分區(qū)均勻分布在每個節(jié)點上。
三、測試高可用
1. 建立一個查詢服務
代碼如下圖所示,保存并發(fā)布。
其中sys.Runtime.RuntimeContext.PeerId表示當前節(jié)點的標識
2. 建立Bash腳本定時調用服務
curl指向Nginx地址
3. 執(zhí)行腳本并嘗試關掉集群某一節(jié)點
執(zhí)行腳本,控制臺定時輸出服務調用結果,可以看到Nginx均衡分配至3個節(jié)點上。此時如果關閉集群某一節(jié)點,Nginx將調用分配至其他兩個節(jié)點,整個集群的可用性不受影響,存儲層只要讀寫的目標分區(qū)有多數(shù)派存活,就可以保障可用性。
四、本篇小結
??本篇介紹了集群在多數(shù)派存活的情況下保障系統(tǒng)的高可用,GitHub上的運行時已更新可測試。作者還在努力爭取到年底前達到基本可用的狀態(tài),請您多多點贊支持!
熱門工具 換一換