本文讲述了Nsb Master节点用来控制消息负载的控制队列,尽管对我来说,它仍然不清楚如何解释队列中消息数量的不平衡:https://docs.particular.net/nservicebus/msmq/distributor/
我在我的Nsb服务中观察到速度很慢,以前从未遇到过速度慢的情况。由于某些原因,与过去相比,每个主节点创建的并行线程较少,并且工作节点或主节点配置没有变化,例如要分配的最大线程数量。我想知道是Master节点不想供养工人,还是工人不想承担更多的工作。
我看到控制队列中的消息数量从15跳到40,而存储只有5-8。我是否应该将其解释为员工已准备好工作,而总代理商无法向他们发送更多消息?谢谢
发布于 2017-04-20 16:59:55
只要分发者在发送消息,控件和storage queue
中的数字就会上下跳跃。进入control queue
的消息将立即从该队列弹出并放到storage queue
上。进入总代理商primary queue
的消息将立即导致storage queue
的第一条消息被弹出。很难解释正在运行的分发服务器队列中的消息数量,因为当您使用Computer Management或Queue Explorer查看这些数量时,它们可能已经发生了变化。
最极端的情况是:
1.分发服务器的主输入队列中没有消息,任何工作进程上也没有发生任何工作。
2.所有工作人员都在满负荷工作。没有人能够承担更多的工作。
在运行的系统中,它可以是这两个极端之间的任何东西,因此,不幸的是,仅从control
和storage queue
的快照很难说太多。
以下是一些故障排除提示:
storage queue
为空,则分发服务器无法分发更多工作。它不知道将其发送到何处。如果所有工作线程都被完全占用,因为在处理完消息之前,它们不会向control queue
发送任何就绪消息,就会发生这种情况。storage queue
始终较小,则您正在接近工作线程的总最大容量。https://stackoverflow.com/questions/43417662
复制相似问题