

golang nsq
以下为 快照 页面,建议前往来源网站查看,会有更好的阅读体验。
原文链接: https://www.tuicool.com/articles/buIzqmU
1.安装
https://nsq.io/deployment/installing.html
2.快速入门
nsqlookupd
在另一个终端中,运行
nsqd --lookupd-tcp-address=127.0.0.1:4160
如果想开启在web UI查看整个节点状况,可以在另一个终端中,运行
nsqadmin --lookupd-http-address=127.0.0.1:4161
此时,打开 http://127.0.0.1:4171
,并没有任何的组件,我们首先发布一个消息到 一个topic,此时,topic未建立的,待执行发送后,会新建topic
curl -d 'hello world 1' 'http://127.0.0.1:4151/pub?topic=baoer'

topic
可以看到已经有一个topic了,但topic中的channel并不会自动创建,web页面上也会显示,没有channel,此时我们可以创建一个channel测试看一下

image.png
channel创建好了以后,消息发送后,channel可自动获取到,此时并没有消费者从channel中获取消息,我们可以写一个简易的客户端来消费channel中的消息
package main import ( "fmt" "sync" "github.com/nsqio/go-nsq" ) func main() { testNSQ() } type NSQHandler struct { } func (this *NSQHandler) HandleMessage(msg *nsq.Message) error { fmt.Println("receive", msg.NSQDAddress, "message:", string(msg.Body)) return nil } func testNSQ() { url := "127.0.0.1:4150" waiter := sync.WaitGroup{} waiter.Add(1) go func() { defer waiter.Done() config := nsq.NewConfig() config.MaxInFlight = 9 for i := 0; i < 10; i++ { consumer, err := nsq.NewConsumer("baoer", "test", config) if nil != err { fmt.Println("err", err) return } consumer.AddHandler(&NSQHandler{}) err = consumer.ConnectToNSQD(url) if nil != err { fmt.Println("err", err) return } } select {} }() waiter.Wait() }
这样,当有消息发送到topic中的时候,客户端就可以消费相应的消息了

两个消息队列.png

整个节点状况.png
本文档仅为入门记录,更多详细文档,待整理后发布。
猜你喜欢
-
64
上篇文章已经了解了消息中间件相关的知识,这篇文章学习一下Golang语言编写的知名消息中间件 NSQ 。 nsq最初是由bitly公司开源出来的一款简单易用的消息中间件,它可用于大规模系...
-
54
nsq 最初是由 bitly 公司开源出来的一款简单易用的分布式消息中间件,它可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息。
-
3
NSQ and Golang Messaging Primer 15 Sep 2020 0 Comments In this post, we’ll look at how you can use NS...
-
42
php-nsq php-nsq 是nsq的php客户端,采用c扩展编写,性能和稳定性。 安装 : 请提前安装libevent Dependencies: libevent (apt-get install libevent-dev ,yum install libevent-devel) 1....
-
35
-
77
目前,全新的异步任务服务每天高效稳定的为唱吧提供数亿次的调用。服务器团队用全新的方式重新定义了异步任务实现方式,以为云计算而生的NSQ、成熟的PHP执行者PHP-FPM、自主开发的中间件NSQProxy以及admin管理后台共同组成了异步任务的队...
-
62
Nsq vs Kafka 正如之前说的,Nsq是一款极简的消息中间件,通过学习Nsq,我们可以通过对比的方式,学习其他的Mq。 这一节,就让我们在对比中,学习另一种Mq,Kafka,在对比中,加深对Mq的理解。 首先,先放上...
-
24
看完lookupd和nsqd之后我们再来看下nsq client端的代码。 我是想把nsq系统完完整整的看一遍,从而对他形成一个更整体的 认识。对message queue来说他的client端就是生产者和消费者,生产者负责想nsq中投递消息,消费者负责...
-
29
看完了nsqlookupd我们继续往下看, nsqd才是他的核心. 里面大量的使用到了go channel, 相信看完之后对你学习go有很大的帮助.相较于lookupd部分无论在代码逻辑和实现上都要复杂很多. 不过基本的代码结构基本上都是一样的, 进...
-
47
为什么选择nsq 之前一直在用erlang做电信产品的开发,对erlang的一些生态也比较了解,和erlang相关的产品在互联网公司使用最多的应该就是rabbitmq了,也许很多人听说过erlang就是因为他们公司在使用rabbitmq。在之前也看过一点...
关于极客头条
聚合每日国内外有价值,有趣的链接。