在遠端機器 192.168.1.16 上啟動 nsqlookupd, nsqadmin
nsqlookupd 占用 4161 埠
有兩個介面:tcp 埠(4160),nsqd 用它來廣播。http 埠(4161),客戶端用它來發現和管理
機器 192.168.1.35 上的 nsqd (在本地預設占用 4150 埠) 啟動後要連線遠端機器 192.168.1.16 上的 nsqlookupd
nohup ./nsqd --lookupd-tcp-address=192.168.1.16:4160 --tcp-address=192.168.1.35:4150 --broadcast-address=192.168.1.35 &
若 nsq 的客戶端和 nsqd, nsqlookupd 在同一臺機器上,則啟動 nsqd 的 ip 位址是 127.0.0.1
nohup ./nsqd --lookupd-tcp-address=127.0.0.1:4160 --tcp-address=127.0.0.1:4150 --broadcast-address=127.0.0.1 &
nsq 客戶端程式中使用的 nsqd 和 lookupd 的 ip,跟 nsqd 的啟動引數一致,這裡是 127.0.0.1
配置檔案中:
#nsqd 位址
nsqdaddress = "127.0.0.1:4150"
#nsqlookupd 位址
nsqlookupdaddress = "127.0.0.1:4161"
在內網環境下,分布在不同機器上的 nsqd 通過 nsqlookupd 發現對方
nsq 的客戶端, 需要會連線到某個 nsq 節點上發布訊息
接接收訊息是需要連線到 nsqlookupd 上,通過 nsqlookupd 的服務發現,找到發布訊息的 nsq 進行訊息接收
nsq 客戶端程式的編寫
作為訊息發布方, 連線到具體某個 nsq 節點的**(假設某個 nsq 節點執行在 192.168.1.35 上
producer, err = nsq.newproducer("192.168.1.35:4150", nsq.newconfig())
producer.setlogger(nil, 0) // 遮蔽系統日誌
發布訊息
producer.publish(...)
作為訊息訂閱方
cfg := nsq.newconfig()
// 客戶端可以連線多少個 nsqd 節點
cfg.maxinflight = 10
// lookupd 對 nsqd 的服務發現間歇
cfg.lookupdpoolinterval = 30 * time.second
c, err := nsq.newconsumer(topic, channel, cfg)
c.setlogger(nil, 0) // 遮蔽系統日誌
c.addhandler(...)
// nsqlookupd 執行在 192.168.1.16 上的
err = c.connecttonsqlookupd(192.168.1.16:4161)
在 /tmp 下面可以找到 nsq 的傳送日誌
在瀏覽器中輸入
可以檢視 topic 以及傳送過的訊息
NSQ訊息佇列
前面的總結中提到過這個玩意,所以簡單說說,win上面的測試驗證 網上有比較合適的博文,我先推薦幾篇 我在簡化一下,給大家說說幾個win什麼的東西。核心元件 nsqd.exe 該元件負責接收資料和 資料。生產者發布資料到這裡,消費者來這裡取資料。類似集群部署元件 輔助工具 nsqadmin.exe 該...
nsq(訊息佇列)
搭建服務 啟動 nsqd 指定 broadcast address 127.0 0nsqd broadcast address 127.0 0.1 1.啟動 nsqlookupd 命令 nsqlookupd 2.啟動nsqd 命令 nsqd broadcast address 127.0 0.1 l...
golang訊息佇列nsq
golang訊息佇列nsq win下安裝 追加i nsq 1.2.0.windows amd64.go1.12.9 bin 2.開啟命令視窗,執行 nsqlookupd 3.開啟新的命令視窗,執行 nsqd lookupd tcp address 127.0.0.1 4160 此處4160是nsqd...