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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker搭建NSQ实时分布式消息集群

發(fā)布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker搭建NSQ实时分布式消息集群 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

NSQ是一個基于Go語言的分布式實時消息平臺,它基于MIT開源協(xié)議發(fā)布,代碼托管在GitHub。NSQ可用于大規(guī)模系統(tǒng)中的實時消息服務,并且每天能夠處理數(shù)億級別的消息,其設計目標是為在分布式環(huán)境下運行的去中心化服務提供一個強大的基礎架構。
NSQ具有分布式、去中心化的拓撲結構,該結構具有無單點故障、故障容錯、高可用性以及能夠保證消息的可靠傳遞的特征。NSQ非常容易配置和部署,且具有最大的靈活性,支持眾多消息協(xié)議。另外,官方還提供了拆箱即用Go和Python庫。如果讀者興趣構建自己的客戶端的話,還可以參考官方提供的協(xié)議規(guī)范。


一. 搭建主NSQ服務

1. 創(chuàng)建主服務器(虛擬機)

IP: 192.168.0.210


2. 拉取NSQ鏡像

> docker pull nsqio/nsq #拉取nsq鏡像 > docker images #查看nsq鏡像


3. 啟動nsqlookupd服務

> docker run -d --name lookupd -p 4160:4160 -p 4161:4161 nsqio/nsq:latest /nsqlookupd> #docker exec -ti lookupd /bin/sh #進入容器,查看nsq目錄結構 > #docker rm -f `docker ps -qa` #刪除所有容器

最重要的服務,是整個集群的總控室,包括服務發(fā)現(xiàn)和節(jié)點拓撲信息的管理。nsqlookupd有以下特點:

  • 唯一性,在集群中的節(jié)點只能指向唯一的nsqlookupd服務
  • 去中心化,即使nsqlookupd崩潰,也會不影響正在運行的nsqd服務
  • 充當nsqd和naqadmin信息交互的中間件
  • 提供一個http查詢服務,給客戶端定時更新nsqd的地址目錄

  • 4. 啟動nsqadmin管理系統(tǒng)

    > docker run -d --name nsqadmin -p 4171:4171 nsqio/nsq /nsqadmin --lookupd-http-address=192.168.0.210:4161

    nsqadmin可以部署在任何一個安裝有nsq服務的機器上,只需要指定唯一的lookupd-http-address服務IP地址

    瀏覽器打開:http://192.168.0.210:4171/ ,此時的NSQd Nodes為空



    二. 部署NSQd節(jié)點服務

    1.在主服務器(192.168.0.210)上開啟一個nsqd節(jié)點服務

    > docker run -d --name nsqd -p 4150:4150 -p 4151:4151 nsqio/nsq:latest /nsqd --broadcast-address=192.168.0.210 --lookupd-tcp-address=192.168.0.210:4160

    2.創(chuàng)建從服務器(IP:192.168.0.159),拉取鏡像docker pull nsqio/nsq,啟動一個nsqd服務,此時已有兩個nsqd節(jié)點

    > docker run -d --name nsqd -p 4150:4150 -p 4151:4151 nsqio/nsq:latest /nsqd --broadcast-address=192.168.0.159 --lookupd-tcp-address=192.168.0.210:4160

    --broadcast-address:當前服務器IP地址,--lookupd-tcp-address:指向的lookupd服務器IP地址




    三. 測試

    1.打開任意一個shell終端,執(zhí)行:

    > curl -d 't1' 'http://192.168.0.210:4151/pub?topic=p1' #一個topic可多次添加 > curl -d 't2' 'http://192.168.0.210:4151/pub?topic=p2' > curl -d 't1' 'http://192.168.0.159:4151/pub?topic=q1' > curl -d 't2' 'http://192.168.0.159:4151/pub?topic=q2' > curl -d 't3' 'http://192.168.0.159:4151/pub?topic=q3'


    2.nsqlookupd奔潰測試(在主服務器):

    > docker stop lookupd #停止nsqlookupd服務 > curl -d 'tpp' 'http://192.168.0.210:4151/pub?topic=pp' # topic可以正常發(fā)布 > docker stop nsqd #停止nsqd服務 > curl -d 'tpp' 'http://192.168.0.210:4151/pub?topic=pp' # topic可以正常發(fā)布 #顯式: curl: (7) Failed connect to 192.168.0.210:4151; 拒絕連接




    參考:
    https://www.cnblogs.com/li-peng/p/7729174.html

    轉(zhuǎn)載于:https://www.cnblogs.com/Hollson/p/9160718.html

    總結

    以上是生活随笔為你收集整理的Docker搭建NSQ实时分布式消息集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。