【问题标题】:Easynetq: developer's queuesEasynetq:开发者队列
【发布时间】:2017-11-20 17:14:59
【问题描述】:

最近我们以发布-订阅和请求-响应方式设置了 easynetq 队列以及公共队列连接/端点。目标是设置easynetq,使用队列开发逻辑必须在开发人员之间独立 - 目前我们已经配置easynetq,每台开发人员机器都有自己的前缀队列集,但看起来如果有2个以上的开发人员启动订阅者,他们会从中读取消息拥有队列以及其他开发人员队列。

如何使用代码配置easynetq来解决这个问题?

【问题讨论】:

标签: c# rabbitmq easynetq


【解决方案1】:

如您所描述的,隔离不同开发人员的活动的更简单方法是为每个开发人员使用不同的虚拟主机(连接字符串中的虚拟主机)。虚拟主机彼此完全隔离。

队列可以为每个开发人员使用相同的名称。他们在不同的虚拟主机上的事实会将他们分开。

https://www.rabbitmq.com/vhosts.html

【讨论】:

  • 可以用不同的方式完成吗?只使用 easynetq 基础设施?
  • 单独的交换和队列是可能的,但工作量更大,管理起来可能更脆弱。隔离虚拟主机是迄今为止最简单的方法。只需更改连接字符串(例如,将 vhost 名称与开发人员的机器名称匹配),您就完成了。
  • 通常 vhost 可以只是您传递 EasyNetQ 的连接字符串的一部分,以连接到 RabbitMQ:github.com/EasyNetQ/EasyNetQ/wiki/Connecting-to-RabbitMQ。您也可以通过 RabbitMQ 管理 API 的 EasyNetQ 包装器管理虚拟主机:github.com/EasyNetQ/EasyNetQ/wiki/Virtual-Hosts。 VHosts 和 RabbitMQ 一样是 EasyNetQ 的东西。 EasyNetQ 只是 RabbitMQ 的一个包装器。
  • 我们尝试了 2 个解决方案:1. 将队列与交换匹配 - 每个队列都有唯一的名称和唯一的交换 2. 使用虚拟主机,我们坚持使用第二种解决方案,它更易于维护且不需要使用 IAdvancedBus
猜你喜欢
  • 2013-07-05
  • 1970-01-01
  • 2015-07-31
  • 1970-01-01
  • 2016-09-18
  • 2020-03-11
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
相关资源
最近更新 更多