Linux安裝及部署NSQ訊息佇列
阿新 • • 發佈:2019-01-29
1、NSQ知識點說明
NSQ是一個基於Go語言的開源分散式實時訊息平臺,NSQ可用於大規模系統的實時訊息服務,它的設計目標是為在分散式環境下提供一個強大的去除中心化的分散式服務架構,可以每天處理數以億計的實時訊息
Go語言,據說Go語言在處理高併發方面很強大,至於有多牛逼,我也不知道,大夥自己去google、百度一下吧
2、環境準備
NSQ是由於Go語言開發的,所以在安裝NSQ之前,需要Go語言環境,首先,我們需要去官網下載Go環境
有點麻煩的是,Go網址是需要翻牆才能下載的,作為程式設計師,怎麼能被牆,個人可以推薦兩款免費的翻牆軟體,藍燈、Shadowsocks ,百度安裝就好
選擇自己需要的安裝檔案,下載安裝,NSQ網址不需要翻牆
確保在shell 關閉(exit)時,程式一直在後臺執行。
可以使用:nohup 你的命令 &
(1) 解壓下載的安裝包,同上,進入bin目錄
(2) 開啟一個終端,啟動nsqlookupd
nohup ./nsqlookupd &
(3)開啟另一個終端,啟動nsqd
nohup ./nsqd --lookupd-tcp-address=127.0.0.1 --broadcast-address=伺服器ID &
broadcast-address:廣播地址,加上這個地址,消費才能通過這個地址訪問,如果你在自己的電腦上玩,這個東西可以忽略
(4)開啟另一個終端,啟動nsqadmin
nohup ./nsqadmin –lookupd-http-address=127.0.0.1:4161 &
(5)開啟另一個終端,啟動nsq_to_file ,將訊息寫入/temp檔案的日誌檔案,檔名預設由主題topic+主機+日期時間戳組成
nohup ./nsq_to_file–topic=test–output-dir=/tmp –lookupd-http-address=127.0.0.1:4161 &
這樣,我們nsq的環境安裝和部署就弄好了
(6)使用curl命令釋出一條訊息
curl -d ‘hello world 1’ ‘http://127.0.0.1:4151/put?topic=test
瀏覽器開啟nsqadmin 的統計頁面:http://ip:4171
3、NSQ的四大元件
安裝好了,讓我們來簡單介紹一下NSQ
nsqlookupd:管理nsqd節點拓撲資訊並提供最終一致性的發現服務的守護程序
nsqd:負責接收、排隊、轉發訊息到客戶端的守護程序,並且定時向nsqlookupd服務傳送心跳
nsqadmin:nsq的web統計介面,可實時檢視叢集的統計資料和執行一些管理任務
utilities:常見基礎功能、資料流處理工具,如nsq_stat、nsq_tail、nsq_to_file、nsq_to_http、nsq_to_nsq、to_nsq
好吧,這個介紹太官方了,有點難以理解,我們來說點大白話
nsqd 可以看作是一個人。
nsqlookupd 是公安局的戶籍辦。
nsqadmin 是人口普查辦公室。
每產生一個nsqd,都要連到nsqlookupd彙報狀態,及定時傳送心跳包。對應的:每個人出生或者過世,都要到戶籍辦去上戶或銷戶,而平時有生之年,你可能還要偶爾去去戶籍辦,出個戶籍證明之類的。
管理者可以通過nsqadmin來檢視統計資料,同時做一些管理操作。對應的,人品普查的時候,可以通過公安局來檢視,各地區的人口數、性別比例、年齡分佈等等。
例子不太恰當,不過對理解也有些幫助,就放在這裡了。
配一張圖:
四、NSQadmin的web統計
nsq自身提供了一個便於檢視和操作的web介面,可以實時檢視統計資訊和執行一些管理任務。
Topic:主題名稱
empty Queue:清空佇列
Delete Topic : 刪除主題
Pause Topic : 暫停主題
Memory+Disk : 記憶體和磁碟
Messages : 表示訊息總數
channels : 訊息通道
In-Flight :飛行中,即將消費的訊息
Deferred : 延遲訊息
Requeued : 已請求的訊息
Time Out : 超時
Connections : 連線數
nodes介面:
這個頁面可以檢視當前nsqlookupd協調管理的節點列表,以及一些連線資訊,比如埠,連線數,主題和主題數量等等。 五、參考資料
- 2.1 go語言環境安裝與配置
- 2.2 NSQ環境安裝與配置
這個頁面可以檢視當前nsqlookupd協調管理的節點列表,以及一些連線資訊,比如埠,連線數,主題和主題數量等等。 五、參考資料