如何使用NAS实现ActiveMQ与虚拟机使用NAS

问题描述:

我们正在将我们的.NET平台从使用MSMQ移动到ActiveMQ。我们每天会抽出超过3千万个持续消息,因此吞吐量和容量对我们至关重要。我们配置MSMQ相关应用程序的方式是先写入本地/专用队列。然后我们有一个本地服务将这些消息路由到它们各自的远程队列进行处理。这确保了初始入队/写入写入速度快(是的,我们也可以使用异步入队),并且如果远程服务器不可用,则不会丢失消息。如何使用NAS实现ActiveMQ与虚拟机使用NAS

我们打算使用与ActiveMQ相同的范例,但现在我们决定转移到使用虚拟机与NAS存储以用于大多数应用程序服务器。这会极大地降低每条消息的写入性能,因为它要存储到NAS中,我觉得我需要重新考虑我们的排队方法。我想知道什么被认为是使用ActiveMQ的最佳实践,具有持续的高吞吐量需求。我应该考虑使用专用队列服务器(不是VM)吗?但是这意味着应用程序的所有写入都直接通过网络。我该如何处理高可用性要求?

任何建议表示赞赏。

您可以在network of brokers中部署ActiveMQ实例,并且该拓扑可以包含本地实例以及远程实例。我已经部署了包含ActiveMQ本地实例的拓扑,以便消息尽可能地靠近发送者,然后根据需求将消息转发到远程ActiveMQ实例。采用这种拓扑结构,我建议配置网络连接器以禁止来自所有目的地的转发消息。即,不是公开允许转发所有目的地的消息,而是希望缩小使用excludedDestinations属性转发的消息数量。

就ActiveMQ的高可用性而言,master/slave配置正是为此而设计的。它有三种口味,取决于你的需求。

希望有所帮助。

Bruce