我应该创建一些交换 Rabbitmq 吗?
Should I create some exchanges Rabbit MQ?
我的用例如下:我有几个用户,订阅了国家,换句话说,一个用户可以与一些国家有关。
因此,生产者向美国国家/地区发送消息,这意味着美国的订阅用户应该会收到此消息。像扇出型。
我在考虑 Rabbit MQ 代理中传输消息的架构。
所以,我认为创建相等数量的国家/地区的交易所是一种丑陋的方式。
而不是我想放置 一个交换 名称国家与一些队列绑定,一个国家一个队列。
然后在客户端确定用户订阅了哪些队列(国家/地区)。
延续:
如果有城市分配给国家,用户也订阅国家的城市怎么办?
我应该创建另一个交换器 cities
并从队列中监听消息吗?我可以直接从country exchange发送消息到city exchange吗?
方案是一个国家和一些相关城市:
Producer -> CountryExhange(USA) ->
CityExchange(Washington) -> Queue (Washington) ->
Consumes (USA, Washington)
通常,消息路由取决于正在处理的消息类型。因此,如果每个国家/地区都有自己的消息类型,那么一定要为每个国家/地区设置一个队列。否则,让消息消费者处理特定于国家/地区的逻辑。
编辑:
问题询问是否应该创建额外的交换。应该注意的是,交换器的工作是将发布的每条消息路由到一个或多个队列。标准交换类型是直接、主题和扇出。这些交换默认存在于新配置的 RabbitMQ 服务器中。因此,除非需要额外的交换类型,否则很少有情况下添加另一个交换是有意义的。
我的用例如下:我有几个用户,订阅了国家,换句话说,一个用户可以与一些国家有关。
因此,生产者向美国国家/地区发送消息,这意味着美国的订阅用户应该会收到此消息。像扇出型。
我在考虑 Rabbit MQ 代理中传输消息的架构。
所以,我认为创建相等数量的国家/地区的交易所是一种丑陋的方式。
而不是我想放置 一个交换 名称国家与一些队列绑定,一个国家一个队列。
然后在客户端确定用户订阅了哪些队列(国家/地区)。
延续:
如果有城市分配给国家,用户也订阅国家的城市怎么办?
我应该创建另一个交换器 cities
并从队列中监听消息吗?我可以直接从country exchange发送消息到city exchange吗?
方案是一个国家和一些相关城市:
Producer -> CountryExhange(USA) ->
CityExchange(Washington) -> Queue (Washington) ->
Consumes (USA, Washington)
通常,消息路由取决于正在处理的消息类型。因此,如果每个国家/地区都有自己的消息类型,那么一定要为每个国家/地区设置一个队列。否则,让消息消费者处理特定于国家/地区的逻辑。
编辑:
问题询问是否应该创建额外的交换。应该注意的是,交换器的工作是将发布的每条消息路由到一个或多个队列。标准交换类型是直接、主题和扇出。这些交换默认存在于新配置的 RabbitMQ 服务器中。因此,除非需要额外的交换类型,否则很少有情况下添加另一个交换是有意义的。