理解Rabbitmq权限

3

我正在尝试建立一个发布/订阅系统。我的技术总监建议在我被分配的项目中使用Rabbitmq和STOMP。

在这个系统中,我希望服务器端创建交换机并传递给用户进行订阅。我希望用户订阅交换机并在有信息可用时接收到它。我不希望客户端有能力订阅任意交换机(或者对于主题交换机是路由键,我还不确定要使用什么系统)。

例如,如果有人在widgetInk公司工作,当他们登录我们的网站时,他们会收到连接widgetInk.whatever和AllUsers.whatever交换机,但只限于这两个。如果客户端尝试订阅其他内容,则会收到错误。

我已经浏览了所有RabbitMQ教程,并查看了它们的“how to”部分。 我找到了这篇关于访问控制的基础文章,但是我已经阅读了三遍,仍然不确定Rabbitmq是否适合我的需求。

Rabbitmq能否配置满足我的需求?我可以使用哪些资源了解Rabbitmq的权限系统?是否有人构建或使用过这样的系统?是否最好切换到ZeroMQ或ActiveMQ?

1个回答

0

我想提及另一个你可能会用到的平台:Autobahn(开源)或 WebMQ(基于 Autobahn)。

除了很多其他功能外,WebMQ 还提供了以下特性:

  • WebSocket 上的 PubSub(WAMP
  • 客户端会话认证(WAMP-CRA)
  • 可针对主题进行细粒度配置的授权

如果你想采用开源/自己构建的方式,这里有一些 教程。如果你想要一个带有 Web UI 的集成商业支持产品来进行配置和管理,请联系我们。

免责声明:我是 Autobahn/WAMP 的创始人,目前就职于 Tavendo。


如果这只是我的项目,我会真的尝试一下。但问题在于,我试图使用c/c++来管理服务器端,因为我们的主服务器客户端是用c/c++编写的,而无论我选择什么都必须与它集成。我知道Python可以与c/c++集成,但我在公司中的地位相对较低,而且我们公司不习惯使用Python作为编程语言。 - AlexLordThorsen
RabbitMQ是用Erlang编写的。 Erlang和C ++之间的紧密集成是可能的(与Python一样),但可能并不简单。另一件事是在C ++中拥有访问WebSocket服务器/ PubSub消息代理的客户端。目前,没有适用于C ++的WAMP客户端库。如果使用强大的WebSocket库,例如基于WebSocket ++(C ++ / ASIO)的库,则可以使用有限的努力实现后者。 - oberstet
我目前正在尝试让RabbitMQ-c插件与我的服务器端配合工作。我会研究WebSocket++。我的当前解决方案堆栈是stomp.js || Sockjs.js || Rabbitmq-web-stomp || rabbitmq || rabbitmq-c。我对WebSockets非常陌生,这个项目一直...有趣的研究。感谢提供的替代阅读材料。 - AlexLordThorsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接