日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

docker 分布式管理群集_Coolpy7分布式物联网MQTT集群搭建

發布時間:2025/3/15 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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作為集群節點間消息轉發通信的分布式設計,集群原理可簡述為下述幾條規則:

  • 所有節點獨立維護自有的身份驗證、訂閱、取消訂閱事件處理
  • 集群之間只會轉發PUBLISH消息,并且消息體少于63K的消息
  • 節點內組播消息不被轉發,只在當前節點有效
  • 集群之間不保證消息不丟失,只轉發消息到所有在線節點,轉發會忽略離線節點
  • 客戶端連接某一個節點后,將會收到來自其他節點給它的消息(于訂閱的主題)
  • 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節點的客戶端如果訂閱了相同主題將會收到相關跨節點消息。

    自動愈合,自動清除異常節點

    集群自動恢復功能說明:

  • 節點網絡異常離線各節點會發現ping包沒有響應,
  • 隨后邀請其他在線節點向異常節點發起ping測試,
  • 如經過三輪周期沒有得到異常節點響應
  • 當前節點設置該節點為離線狀態
  • 移出在線節點列表。
  • 異常節點再次上線
  • 所有在線節點收到狀態信號
  • 所有節點設置該節點為在線
  • 添加該節點到在線列表
  • 防火墻設置

    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集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。