Microservices NServiceBus:这是幻觉还是最佳实践?

Microservices NServiceBus:这是幻觉还是最佳实践?,microservices,nservicebus,Microservices,Nservicebus,给定一个使用MSMQ的NServiceBus微服务,当我将该服务的几个实例部署到同一台机器上时,我是否扩展了我的应用程序?我是否提高了性能?或者一个例子就足够了。我应该换一台功能更强大的机器来处理消息吗?不,在一台机器上运行多个实例不会使运行速度更快,只会降低执行效率 但是,即使系统监控显示有大量资源可供使用,但单个实例可能无法提供预期的性能。在这种情况下,您可能希望通过配置允许的并行消息执行量来调整NServiceBus端点的配置 在以下链接中,您可以看到如何提高并发性: 您可以通过实际

给定一个使用MSMQ的NServiceBus微服务,当我将该服务的几个实例部署到同一台机器上时,我是否扩展了我的应用程序?我是否提高了性能?或者一个例子就足够了。我应该换一台功能更强大的机器来处理消息吗?

不,在一台机器上运行多个实例不会使运行速度更快,只会降低执行效率

但是,即使系统监控显示有大量资源可供使用,但单个实例可能无法提供预期的性能。在这种情况下,您可能希望通过配置允许的并行消息执行量来调整NServiceBus端点的配置

在以下链接中,您可以看到如何提高并发性:

您可以通过实际使用多台计算机进一步扩展,但如果所有这些端点共享同一个中央数据库,则您的网络或数据库服务器很容易成为瓶颈。如果您考虑在多台机器上部署或扩展端点,确保任何存储解决方案也被缩放,以免成为瓶颈。

零停机升级/部署
在同一个框中有多个实例的唯一原因是,例如,在部署新版本时,您可以暂时并行运行当前版本和新版本,以实现零停机部署。

不,在一台计算机上运行多个实例不会使运行速度加快,这只会降低执行效率

但是,即使系统监控显示有大量资源可供使用,但单个实例可能无法提供预期的性能。在这种情况下,您可能希望通过配置允许的并行消息执行量来调整NServiceBus端点的配置

在以下链接中,您可以看到如何提高并发性:

您可以通过实际使用多台计算机进一步扩展,但如果所有这些端点共享同一个中央数据库,则您的网络或数据库服务器很容易成为瓶颈。如果您考虑在多台机器上部署或扩展端点,确保任何存储解决方案也被缩放,以免成为瓶颈。

零停机升级/部署
在同一个框中有多个实例的唯一原因是,例如,在部署新版本时,您可以暂时并行运行当前版本和新版本,以实现零停机部署。

我想我们从这种模式中获得的唯一好处是零停机时间。Ahmad,这是正确的,例如,在部署修复程序时,您可以很快运行两个版本。我必须承认,我对此感到有点困惑。如果您有相同的端点实例,但配置了不同的输入队列,并且您将消息路由到这两个队列,那么处理肯定会同时进行吗?为什么我们(在多核机器上)得不到任何好处?感谢您对我有限的理解作出解释…@tomredfern NServiceBus已经使用您机器上的多核使用多线程处理消息。拥有不同端点和不同传入队列的唯一原因是在逻辑上分割数据。例如,由于监视具有不同SLA或不属于一起的端点或其他端点。因此,在一个盒子上运行不同的端点是正常的,但不是出于性能原因。这有意义吗?我想我们能从这种模式中得到的唯一好处是零停机时间。艾哈迈德,这是正确的,例如,当部署一个修复程序时,您可以很快运行两个版本。我必须承认,我对此感到有点困惑。如果您有相同的端点实例,但配置了不同的输入队列,并且您将消息路由到这两个队列,那么处理肯定会同时进行吗?为什么我们(在多核机器上)得不到任何好处?感谢您对我有限的理解作出解释…@tomredfern NServiceBus已经使用您机器上的多核使用多线程处理消息。拥有不同端点和不同传入队列的唯一原因是在逻辑上分割数据。例如,由于监视具有不同SLA或不属于一起的端点或其他端点。因此,在一个盒子上运行不同的端点是正常的,但不是出于性能原因。这有意义吗?