【发布时间】:2019-01-03 08:44:40
【问题描述】:
我想允许外部服务使用我的 RabbitMQ 队列,问题是我不想直接访问连接到 RabbitMQ 我想通过网关/API 管理器/Rest Endpoint 公开。
我不确定这是否可行,但我想知道一些方法可以将事件留在队列中,这些事件可以由以安全方式公开的外部服务或像网关这样的集中式服务使用。
谢谢大家的回复:)
【问题讨论】:
标签: java spring spring-boot rabbitmq gateway
我想允许外部服务使用我的 RabbitMQ 队列,问题是我不想直接访问连接到 RabbitMQ 我想通过网关/API 管理器/Rest Endpoint 公开。
我不确定这是否可行,但我想知道一些方法可以将事件留在队列中,这些事件可以由以安全方式公开的外部服务或像网关这样的集中式服务使用。
谢谢大家的回复:)
【问题讨论】:
标签: java spring spring-boot rabbitmq gateway
您可以尝试创建回调服务。
系统将接受(甚至存储)POST URL。当您的自己的 队列消费者消费一条消息时,它会做的只是将队列消息(可能带有附加数据)作为回调发送到您存储的 URL。然后,该 URL 所属的服务器将对您的回调服务发送的消息执行所需的任何操作。
【讨论】:
正如@KaNa0011 所回答的,回调可以是一种解决方案,但这会让生产者承担更多责任(如果接收者不可用怎么办?)
另一种方法是将您的事件公开为 Atom 提要,这是 Oliver Gierke 在他的演讲中解释的内容“重构到系统的系统”:https://youtu.be/MEySjYD86PQ?t=5487
【讨论】: