1.服務啟動:
Windows:
1.在window的環境變數中path加入:
E:\nsq-1.0.0-compat.windows-amd64.go1.8\bin
2.打開命令視窗,運行:
nsqlookupd
3.打開新的命令視窗,運行:
nsqd --broadcast-address=127.0.0.1 --mem-queue-size=0 --lookupd-tcp-address=127.0.0.1:4160
4160是nsqd與lookupd進行tcp連接的埠;
-broadcast-address=127.0.0.1防止地址被決議私有ip;
-mem-queue-size=0是訊息持久化到磁盤;
4.打開新的命令視窗,運行:
nsqadmin --lookupd-http-address=127.0.0.1:4161
4161是nsqadmin與lookupd進行http連接的埠;
5.打開支持curl命令的視窗(git bash)運行:
curl -d 'hello world 1' 'http://127.0.0.1:4151/pub?topic=test'
4151是nsqd http請求的介面;
6.至此,整個運行和產生訊息的程序就完成了,打開:
http://127.0.0.1:4171/
即可看到對應的可視化頁面,看到自己的訊息佇列;
7.打開新的命令視窗,運行:
nsq_to_file --topic=test --output-dir=E:/nsq-logs --lookupd-http-address=127.0.0.1:4161
消費訊息,列印到日志檔案;
Linux:
步驟和Windows類似;
后臺啟動,命令加上:nohup ./*** & 即可;
2.埠介紹:
1.外網訪問必須開放4150,4151,4160,4161,4171等幾個埠;
2.nsqlookupd 監聽兩個埠:
4160 TCP 用于接收nsqd的廣播,記錄nsqd的地址以及監聽TCP/HTTP埠等;
4161 HTTP 用于接收客戶端發送的管理和發現操作請求,增刪話題,節點等管理查看性操作等;
當Consumer進行連接時,回傳對應存在Topic的nsqd串列;
3.nsqd監聽兩個埠:
4151 HTTP Producer使用HTTP協議的curl等工具生產資料;Consumer使用HTTP協議的curl等工具消費資料;
4150 TCP Producer使用TCP協議的nsq-j等工具生產資料;Consumer使用TCP協議的nsq-j等工具消費資料;
4.nsqadmin監聽一個埠:
4171 HTTP 用于管理頁面;
5.使用地址http://127.0.0.1:4171打開管理頁面;
注:官方推薦使用HTTP方式生產消費資料,不推薦TCP,
3.Topic和Channel之間的關系:
1.主題和頻道沒有事先配置:通過發布指定主題,或訂閱指定主題,在首次使用時創建主題;通過訂閱指定主題的頻道,在首次使用時創建頻道;
2.一個topic可以有一個或多個channel,每個channel都是topic的完整副本,會收到主題的所有訊息;多個channel是為了消費者對收到的訊息執行不同的作業,比如ch1收到所有的資料,按照自身邏輯處理完,發送給A,ch2也收到所有的資料,按照自身邏輯處理完,發送給B;
3.一個通道可以連接多個客戶端,每條訊息都傳遞給客戶端,訊息均勻分發,負載均衡;如果佇列中有訊息未被消費,啟動消費時訊息可能被一個客戶端獨自消費,
工眾號:李田路口
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/36321.html
標籤:Go
上一篇:Go語言中定時器的使用
下一篇:golang jwt-go的使用
