gpt4 book ai didi

security - 向 Internet 公开发布/订阅消息队列

转载 作者:IT王子 更新时间:2023-10-29 06:06:43 25 4
gpt4 key购买 nike

我一直对使用带有发布/订阅的消息队列(ZeroMQ、RabbitMQ、redis 等)非常感兴趣,这样我就可以向客户端发送推送消息。实际上,我需要客户端能够从开放的 Internet 订阅并且 MQ 主机是唯一可以发布的主机。但问题似乎是,由于其固有的开放性,所有现有的解决方案都不是设计用于开放 Internet 的,并且所有解决方案都建议放在防火墙/前端后面,这会破坏 MQ 的实用性(防火墙会阻止来自更改 IP 的客户端和像 REST API 这样的前端不允许订阅,并且基本上会将推送变成轮询)。

那么对于这个问题是否有任何解决方案/替代方案可以让我这样做?消息队列是正确的解决方案吗(我研究过使用非阻塞套接字,但我宁愿避免处理原始套接字)?

最佳答案

我正在研究类似的东西,并确实搜索了一个开源解决方案,但没有成功。我目前的解决方案是使用 Restful 接口(interface)来发布和订阅消息。我正在使用 java 来实现它并创建了一个 Rest 资源以允许客户端注册一个 HTTP 端点,它本身可以是一个接受 post 消息的 rest 资源。一旦客户端注册了他订阅特定资源的意图并提供了 Rest 端点,我就使用 RabbitMq 直接交换将消息路由到队列,这反过来触发向所有订阅者发送消息。

此解决方案对我有用,您可以尝试相同的模型。

我已经使用 java 观察者模式来监听队列中的新消息并触发新的 http 请求。

由于这是基于 rest 的实现,您可以使用任何语言实现它。

关于security - 向 Internet 公开发布/订阅消息队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29013618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com