Golang訊息佇列之NSQ

2022-07-05 06:21:11 字數 1728 閱讀 2769

目錄nsq安裝

nsq是乙個實時分布式訊息傳遞平台,設計用於大規模操作,能每天處理數十億條訊息。

它促進了沒有單點故障的分布式和分散拓撲,支援容錯和高可用性,並提供可靠的訊息傳遞保證。

優缺點

優點:1、部署非常方便,沒有任何環境的依賴,乙個二進位制可執行檔案

2、輕量級沒有過多的配置引數,只需要簡單配置即可直接使用

3、效能極高(基於go編寫)

4、訊息不存在丟失的情況

缺點:1、訊息無順序

2、節點之間沒有訊息複製

3、沒有鑑權

場景介紹來自於

將註冊資訊寫入資料庫成功後,同時進行傳送註冊郵件和傳送註冊簡訊的操作。而所有任務執行完成後,返回資訊給客戶端。同序列方式相比,並行方式可以提高執行效率,減少執行時間。

並行方式:

非同步方式:

場景說明:使用者下單以後,訂單系統需要通知庫存系統。

傳統的做法為:訂單系統呼叫庫存系統介面。如下圖所示:

傳統方式具有如下缺點:

1、假設庫存系統訪問失敗,則訂單減少庫存失敗,導致訂單建立失敗

2、訂單系統同庫存系統過度耦合

那麼如何解決上述的缺點呢?需要引入訊息佇列,引入訊息佇列後的架構如下圖所示:

應用場景:秒殺活動,一般會因為流量過大,導致流量暴增,應用掛掉。為解決這個問題,一般需要在應用前端加入訊息佇列。

1、可以控制參與活動的人數;

2、可以緩解短時間內高流量對應用的巨大壓力;

流量削鋒處理方式系統圖如下:

nsq元件

nsqd:乙個守護程序,它接收、排隊並向客戶端傳送訊息

nsqlookupd:彙總節點資訊,提供查詢和管理topic等服務

nsqadmin:管理端展示ui介面,能有乙個web頁面去檢視和操作

nsq github

$ wget
2.啟動nsqlookupd

$ ./nsqlookupd &
3.啟動nsqd,並註冊到指定lookupd

$ ./nsqd -broadcast-address=127.0.0.1 -lookupd-tcp-address=127.0.0.1:4160 &
4.啟動nsqweb介面

5.訪問nsqadmin

!(

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...

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...