message-queue - NATS - 只需一个订阅者即可对微服务架构中发布的事件采取行动

标签 message-queue nats.io nats-streaming-server

我是 NATS 的新手,已经阅读了以下所有示例: https://nats.io/documentation/concepts/nats-messaging/

我在 Microservciearchitecture 中,其中微服务-Y (MSY) 需要存储从其他微服务-X (MSX) 发布的一些信息我有 2-10 个 MSY 实例,因此当在 MSX 和 MSX 实例中进行更改时发布事件我希望只有 1 个 MSY 实例应该保存信息,因此并非所有实例都保存相同的数据。 我已阅读请求回复: https://nats.io/documentation/concepts/nats-req-rep/ 但似乎所有实例都收到消息(并将处理它),即使它是点对点的,并且只为最快回复的一个实例处理回复

这是正确的还是我误解了示例? 如果我只需要 1 个 MSY 实例来处理给定消息(将数据存储在数据库中),我该怎么做才能实现这一目标?

最佳答案

使用队列组。如果您在同一个队列组中有多个关于同一主题的订阅,则只有该组的一个成员会收到消息。 检查一下:https://nats.io/documentation/concepts/nats-queueing/

关于message-queue - NATS - 只需一个订阅者即可对微服务架构中发布的事件采取行动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50187925/

相关文章:

c# - RabbitMQ:在 pub/sub 中,消费者是在队列中轮询新消息还是服务器推送消息?

messagebroker - NATS 是否水平扩展(吞吐量)

node.js - Dockerfile 中 nats-server 的 CMD 命令是什么

database - 使用 NATS Streaming Server 作为物联网位置数据的主要数据存储?

node.js - Nodejs Express API 与 NATS?

python - 当我尝试使用 pika (python) 向 RabbitMQ 确认消息时发生错误 "unknown delivery tag"

linux - linux中的消息队列

java - 在 servlet 容器端口上运行嵌入式 activemq 代理

java-nats-streaming : Publishing Messages after Server Reconnects

kubernetes - 如何获取 NATS 流队列的大小?