针对特定用户的 RabbitMQ 过滤
RabbitMQ filtration to specific Users
我有架构问题。
我知道什么代表(扇出、直接、主题、headers)交换、绑定、queues 以及关于消息架构的几乎所有内容。我有以下问题,需要一些建议。
我想在我的应用程序中实现通知逻辑,每个用户都将在 real-time 中收到仅针对他的通知。 (实际上,我不想提及什么是我的 UI 和 BE languages/frameworks,因为额外的抽象级别)UI 将使用 WebSocket、SockJS 和 RabbitMQ 建立连接跺脚。我的 UI 将只是一个消费者,BE 是编写者 - 那个,它将向 RabbitMQ 添加一些消息。
如果我有一个带有路由密钥的直接交换,我很清楚,它唯一地标识特定用户(例如:my-routing-to-empoyee-with-id-1)和N-number of Queues 为每个用户。这对我来说太重了(我其实不知道正常情况下有这么多queues)。
是否有任何解决方案,我只能使用一个 Queue 并且消息只能传递给预期的用户?
我知道一个解决方案,我可以在其中进行主题交换并拥有一个作者和多个订阅者,但是通过这种方式,我只能在客户端级别过滤消息,这不太安全。 :(
其实我找到了一篇很有意思的文章,把我遇到的一个问题描述的还不错
我想要的是选择性消费者,对于企业集成模式这是一个反模式,我们不应该使用它。
想了解更多的可以看这篇文章:https://derickbailey.com/2015/07/22/airport-baggage-claims-selective-consumers-and-rabbitmq-anti-patterns/
我有架构问题。
我知道什么代表(扇出、直接、主题、headers)交换、绑定、queues 以及关于消息架构的几乎所有内容。我有以下问题,需要一些建议。
我想在我的应用程序中实现通知逻辑,每个用户都将在 real-time 中收到仅针对他的通知。 (实际上,我不想提及什么是我的 UI 和 BE languages/frameworks,因为额外的抽象级别)UI 将使用 WebSocket、SockJS 和 RabbitMQ 建立连接跺脚。我的 UI 将只是一个消费者,BE 是编写者 - 那个,它将向 RabbitMQ 添加一些消息。
如果我有一个带有路由密钥的直接交换,我很清楚,它唯一地标识特定用户(例如:my-routing-to-empoyee-with-id-1)和N-number of Queues 为每个用户。这对我来说太重了(我其实不知道正常情况下有这么多queues)。
是否有任何解决方案,我只能使用一个 Queue 并且消息只能传递给预期的用户?
我知道一个解决方案,我可以在其中进行主题交换并拥有一个作者和多个订阅者,但是通过这种方式,我只能在客户端级别过滤消息,这不太安全。 :(
其实我找到了一篇很有意思的文章,把我遇到的一个问题描述的还不错
我想要的是选择性消费者,对于企业集成模式这是一个反模式,我们不应该使用它。
想了解更多的可以看这篇文章:https://derickbailey.com/2015/07/22/airport-baggage-claims-selective-consumers-and-rabbitmq-anti-patterns/