Nsq搭建與使用

2021-09-25 15:06:54 字數 4593 閱讀 5830

文件:

nsqlookupd
它會監聽兩個埠:http: 4161客戶端用它來發現和管理。tcp: 4160nsqd 用它來廣播

可選引數:

nsqd --lookupd-tcp-address=127.0.0.1:4160
它是乙個守護程序,負責接收訊息,傳遞訊息給客戶端,排隊。 會監聽兩個埠:http: 4151,tcp: 4150

nsqadmin --lookupd-http-address=127.0.0.1:4161
它是乙個web頁面,負責管理我們的訊息佇列, 它後面的位址即是我們在 nsqlookupd 裡面http-address引數配置的位址,nsqadmin的監聽位址為4171,通過127.0.0.1:4171位址可開啟nsq的web管理頁面

channel是消費者訂閱特定topic的一種抽象。對於發往topic的訊息,nsqd向該topic下的所有channel投遞訊息,而同乙個channel只投遞一次,channel下如果存在多個消費者,則隨機選擇乙個消費者做投遞。這種投遞方式可以被用作消費者負載均衡。和topic一樣,channel同樣有永久和臨時之分,永久的channel只能通過顯式刪除銷毀,臨時的channel在最後乙個消費者斷開連線的時候被銷毀

往通道裡面傳送訊息

curl -d 'hello world'

''

從通道中消費訊息,這裡我們要指定從哪個channel裡消費,

nsq_to_file --topic=test-dev -channel=default --output-dir=log --lookupd-http-address=127.0.0.1:4161
此時就會在當前目前下生成乙個 log 資料夾,裡面存放的就是我們這個channel裡的訊息

安裝第三方庫

}測試

如果你不想使用有讚的第三方庫,你可以使用下面這個:

// nsq發布訊息

func

producer

(topic string

,data [

]byte

)error

// 發布訊息

return p.

publish

(topic, data)

}// 消費訊息

func

consumer

(topic,channel string

,handlerfunc nsq.handlerfunc)

error

//新增訊息處理

c.addhandler

(handlerfunc)

//建立連線

return c.

connecttonsqd

(addr)

}

nsq的搭建超詳細

對於什麼是nsq,請參考 搭建nsq實時分布式訊息平台,主要啟動三個模組nsqlookupd nsqd nsqadmin。1.在第乙個shell中,啟動nsqlookupd nsqlookupd 2.在第二個shell中,啟動nsqd nsqd lookupd tcp address 127.0.0...

Golang訊息佇列 NSQ簡單介紹與使用

windows 1.在window的環境變數中path加入 e nsq 1.0.0 compat.windows amd64.go1.8 bin 2.開啟命令視窗,執行 nsqlookupd3.開啟新的命令視窗,執行 nsqd broadcast address 127.0 0.1 mem queu...

訊息佇列 nsq 使用筆記

在遠端機器 192.168.1.16 上啟動 nsqlookupd,nsqadmin nsqlookupd 占用 4161 埠 有兩個介面 tcp 埠 4160 nsqd 用它來廣播。http 埠 4161 客戶端用它來發現和管理 機器 192.168.1.35 上的 nsqd 在本地預設占用 41...