NSQ消息隊列

前面的總結中提到過這個玩意,所以簡單說說,win上面的測試驗證

網上有比較合適的博文,我先推薦幾篇

https://blog.csdn.net/a2247889821/article/details/82217442

https://blog.csdn.net/lu92649264/article/details/80693030

https://blog.csdn.net/u013735511/article/details/82555419

https://blog.xuanyueting.com/2018/05/19/nsq%E4%BB%8B%E7%BB%8D%E5%92%8Cgo-nsq%E4%BD%BF%E7%94%A8/

https://blog.csdn.net/wangchaoxiaoban/article/details/76037142

我在簡化一下,給大家說說幾個win什麼的東西。

核心組件:

 nsqd.exe 該組件負責接收數據和轉發數據。生產者發佈數據到這裏,消費者來這裏取數據。

類似集羣部署組件

nsqlookupd.exe 該組件負責管理 nsqd.exe, nsqd.exe向該組件註冊,心跳通信,狀態獲取。nsqlookupd根據心跳確定nsqd是否在線,獲取每個nsqd上的主題信息。

輔助工具

 nsqadmin.exe  該組件在消息系統中沒有作用,只是一個輔助工具,提供一個網頁界面方便查看主題信息,該組件從nsqlookupd獲取主題數據並且展示。你可以簡單理解成這是一個小web,爲你提供信息。

在win上,默認啓動是這樣的。

這就是大概情況。結合c#的客戶端NsqCSharp,給大家解釋下。

1.生產者

   客戶端例子:

           var producer = new Producer("127.0.0.1:4150");
            producer.Publish("test-topic-name", "Hello!");

      說明:nsqd啓動,看圖,TCP的默認端口是4150,生產者直接將數據推出。

2.消費者

        var consumer = new Consumer("test-topic-name", "channel-name");
            consumer.AddHandler(new MessageHandler());
            consumer.ConnectToNsqLookupd("127.0.0.1:4161"); 

說明:這裏消費端使用的是http,消費端這裏的地址是nsqlookupd的http端口,通過該地址獲取該主題的nsqd地址,內部再去連接nsqd,這個是當前客戶端封裝的。

上面這種方式,生產者直接連接nsqd,消費者先通過nsqlookupd獲取nsqd,然後再連接,是nsq官方推薦的方式。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章