docker 分布式管理群集_Coolpy7分布式物联网MQTT集群搭建
Coolpy7分布式技術,支持多個Coolpy7 Core提供跨數據中心(多活)模式組建群集,支持群集零手動維護(基于Gossip分布式協議作為群集節點狀態維護)。Coolpy7從版本號V7.3.2.3開始支持本功能。請到Coolpy7之github項目release下載相關版本https://github.com/Coolpy7/Coolpy7/releases。也可以通過docker安裝。
Coolpy7分布集群設計?
Coolpy7消息服務器集群基于Gossip協議作為服務發現,基于UDP作為集群節點間消息轉發通信的分布式設計,集群原理可簡述為下述幾條規則:
Coolpy7集群架構圖
消息分發流
手動配置管理集群
假設部署三臺服務器 192.168.1.100, 192.168.1.101, 192.168.1.102 上部署集群:
節點名 IP
node1 192.168.1.100
node2 192.168.1.101
node3 192.168.1.102
節點名不允許重復,否則群集將無法自動維護集群狀態
節點1:192.168.1.100節點設置
# 下載服務器端sudo wget https://github.com/Coolpy7/Coolpy7/releases/download/7.3.2.3/go_build_Coolpy7_go_linux.zip# 解壓文件unzip go_build_Coolpy7_go_linux.zip# 提權chmod -R 777 go_build_Coolpy7_go_linux# 啟動Coolpy7 啟動參數# csk 集群服務同步驗證token,集群各節點轉發消息時驗證此口令,防止惡意入侵集群# nid 集群節點名稱,必須集群中唯一# mbs 連接集群其他節點,只需填其他節點信息,以半角豆號分隔多個節點信息./go_build_Coolpy7_go_linux -csk=12345678 -nid=node1 -mbs=192.168.1.101:7946,192.168.1.102:7946# 啟動成功后會打印如下信息,即說明服務端已正常啟動,host于1883端口,請確保相關防火墻配置可用2020/02/14 14:48:27 cluster on udp 192.168.1.100:79462020/02/14 14:48:27 cluster sync on udp port 79472020/02/14 14:48:27 Coolpy7 v7.3.2.3 tcp [::]:1883 plugin build golang v1.13.1打印消息提示,群集使用UDP的7946端口進行集群服務發現,UDP的7947端口進行消息同步服務。
如需自定義端口可通過啟動參數
-crp int 集群發現端口(UDP) (default 7946)
-csp int 集群同步端口(UDP) (default 7947)
節點2:192.168.1.101節點設置
# 下載服務器端sudo wget https://github.com/Coolpy7/Coolpy7/releases/download/7.3.2.3/go_build_Coolpy7_go_linux.zip# 解壓文件unzip go_build_Coolpy7_go_linux.zip# 提權chmod -R 777 go_build_Coolpy7_go_linux# 啟動Coolpy7 啟動參數# csk 集群服務同步驗證token,集群各節點轉發消息時驗證此口令,防止惡意入侵集群# nid 集群節點名稱,必須集群中唯一# mbs 連接集群其他節點,只需填其他節點信息,以半角豆號分隔多個節點信息./go_build_Coolpy7_go_linux -csk=12345678 -nid=node2 -mbs=192.168.1.100:7946,192.168.1.102:7946# 啟動成功后會打印如下信息,即說明服務端已正常啟動,host于1883端口,請確保相關防火墻配置可用2020/02/14 14:48:27 cluster on udp 192.168.1.101:79462020/02/14 14:48:27 cluster sync on udp port 79472020/02/14 14:48:27 Coolpy7 v7.3.2.3 tcp [::]:1883 plugin build golang v1.13.1節點3:192.168.1.102節點設置
# 下載服務器端sudo wget https://github.com/Coolpy7/Coolpy7/releases/download/7.3.2.3/go_build_Coolpy7_go_linux.zip# 解壓文件unzip go_build_Coolpy7_go_linux.zip# 提權chmod -R 777 go_build_Coolpy7_go_linux# 啟動Coolpy7 啟動參數# csk 集群服務同步驗證token,集群各節點轉發消息時驗證此口令,防止惡意入侵集群# nid 集群節點名稱,必須集群中唯一# mbs 連接集群其他節點,只需填其他節點信息,以半角豆號分隔多個節點信息./go_build_Coolpy7_go_linux -csk=12345678 -nid=node3 -mbs=192.168.1.100:7946,192.168.1.101:7946# 啟動成功后會打印如下信息,即說明服務端已正常啟動,host于1883端口,請確保相關防火墻配置可用2020/02/14 14:48:27 cluster on udp 192.168.1.102:79462020/02/14 14:48:27 cluster sync on udp port 79472020/02/14 14:48:27 Coolpy7 v7.3.2.3 tcp [::]:1883 plugin build golang v1.13.1至此集群搭建完畢,現在即可通過MQTT客戶端工具(MQTTLens)等進行相關集群功能測試。可從A節點連接的客戶端推送消息,然后B,C節點的客戶端如果訂閱了相同主題將會收到相關跨節點消息。
自動愈合,自動清除異常節點
集群自動恢復功能說明:
防火墻設置
Coolpy7使用UDP協議進行集群節點狀態信號和消息同步通信,所以需要開始相關UDP端口防火墻
關于docker部署方式
最新版本docker鏡像已更新到latest標簽版本下,docker hub地址:https://hub.docker.com/r/coolpy7/coolpy7_core ,docker相關部署方式請參閱本手冊相關章節。Docker部署(Windows運行CP7)/kai-shi-shi-yong/docker-bu-shu-windows-yun-hang-cp7
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的docker 分布式管理群集_Coolpy7分布式物联网MQTT集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle脚本审核平台,Oracle
- 下一篇: c++矩阵连乘的动态规划算法并输出_你在