如果我没有将它作为自己的服务/ vm运行,我应该在每个VM上安装rabbitmq吗?

时间:2018-02-19 02:14:31

标签: azure rabbitmq azureservicebus masstransit

我们目前有2个Azure Windows VM,每个实例上都安装了所有应用程序。然后对它们进行负载平衡。

目前,这对我们来说非常有用,因为我们有多个.NET核心API,Angular客户端和.NET完整框架应用程序,目前运行时负载相对较低,因此无需将它们分离到各个实例(尽管我们将来可能会这样做。)

我们最近使用.NET核心,rabbitmq和MassTransit开发了一个服务总线集成来处理电子邮件和报告生成(因为这些需要一段时间来生成并减慢应用程序的速度)。这一切都在本地很好用,我已经准备好部署了。

我想使用Azure Service Bus,因此我们拥有一个集中且经济高效的消息代理,但目前MassTransit不支持与Azure Service Bus的.NET核心集成(我不想切换我们的生产者或消费者到完整的.NET)。我相信这应该在不久的将来可用。

因此,在MassTransit支持ASB之前,我想使用rabbitmq,我的计划是在我们的每个VM上安装rabbitmq(无论如何都没有链接),并将这些机器上的生产者和消费者指向本地版本的rabbitmq(因为如果虚拟机是生产者,消费者和经纪人都会失败了。)

这是正确的方法还是有更好的方法让我为这种情况配置rabbitmq而无需为另一个实例/托管服务付费?

1 个答案:

答案 0 :(得分:0)

与Azure SB相同,RabbitMQ是消息代理,这意味着您需要一个集中式实例。您的所有服务都将使用此实例。

您可以在任何虚拟机上安装它,它不占用太多内存,您需要的磁盘空间与队列所需的一样多。