nats
hzzyu
熟悉php,go,python爬虫,热爱编程,尊重程序
展开
-
Nats的消息通信模型
消息通信模型 NATS的消息通信是这样的:应用程序的数据被编码为一条消息,并通过发布者发送出去;订阅者接收到消息,进行解码,再处理。订阅者处理NATS消息可以是同步的或异步的。 * 异步处理 异步处理使用回调消息句柄处理消息,当有消息到来时,已注册的回调句柄接收并控制处理消息。整个过程客户端不会被阻塞,可以同步执行其它任务。异步处理可以采用多线程调度的设计。 * 同步处...原创 2019-09-11 16:51:42 · 372 阅读 · 0 评论 -
golang nats[1] 安装
下载[root@localhost ~]# weget https://github.com/nats-io/gnatsd/releases/download/v1.2.0/gnatsd-v1.2.0-linux-amd64.zip解压[root@localhost ~]# unzip gnatsd-v1.2.0-linux-amd64启动[root@local...原创 2019-09-12 09:54:51 · 376 阅读 · 0 评论 -
golang nats[2] 发布订阅模式
发布订阅-模式要求:发布消息时,订阅者必须已经完成订阅且处于激活状态。注意:nc.Subscribe这个方法不是同步的。类似:发布广播,所有的订阅者都会收到消息。消息会被所有的订阅者消费。package mainimport ( "fmt" "github.com/nats-io/go-nats" "log" "time")const ( url = "nat...原创 2019-09-12 11:35:10 · 595 阅读 · 0 评论 -
golang nats[3] queue模式
队列订阅模式此模式中,订阅者要指定两个属性,主题和队列(queue,其实就是队列名称)注意:下面所有前提=必须订阅同一个主题发布消息后,N个具有同样的主题和queue的订阅者,只有一个会收到消息。(random算法)说明:queue=工作组,工作组中有N个worker,发布消息后,同一个工作组中,仅有一个worker会收到消息。相同主题,不同queue的订阅者...原创 2019-09-17 14:01:05 · 729 阅读 · 0 评论 -
golang nats[4] request reply模式
请求响应模式无论是发布订阅模式还是queue模式,nats都不能保证消息一定发送到订阅方,除非订阅者发送一个响应给发布者。所以订阅者发送一个回执给发布者,就是请求响应模式。这种模式有什么用?nats要求订阅者一定要先完成订阅,发布消息后,订阅者才能收到消息,类似离线消息的模式nats不支持。就算先完成订阅,后发送消息,消息发送方也不知道是否有订阅者收到了消息,请求响应模式就是应...原创 2019-09-17 14:21:32 · 789 阅读 · 2 评论