【发布时间】:2016-09-11 22:41:38
【问题描述】:
我正在使用 MassTransit 发送和接收微服务命令。当我在本地运行它(远程连接到 Azure 服务总线实例)时,它可以正常发送和接收。例如。我从本地控制台应用程序向远程 ServiceBus 队列(我可以在 Service Bus Explorer 3.0.4 中看到)发送一个命令,然后我的本地 TopShelf 服务接收并处理该命令。但是当我部署我的服务时,它会失败并出现以下错误:
Microsoft.ServiceBus.Messaging.MessageSizeExceededException: The received message (delivery-id:0, size:1904586 bytes) exceeds the limit (262144 bytes) currently allowed on the link.
我只发送一条消息,而且消息相当大,但肯定不是错误中提到的 1.8MB!它只比 100KB 大一点。
我找到了this post regarding batch partitioning of messages,但在我看来,这仅在您想将多条消息分成更小的消息组时才有意义。我只发一条消息。此外,我在 MassTransit 中找不到任何关于如何实际执行此操作的文档。我尝试像这样设置IServiceBusHostConfigurator:cfg.BatchFlushInterval = TimeSpan.FromSeconds(0.05);
- 谁能解释为什么它认为我的消息要大得多?
- 我能否将单个消息拆分为更小的分区?还是有其他解决方案?
- 我应该完全禁用分区吗?如果有,怎么做?
【问题讨论】:
-
@stuartd 谢谢,我在那个论坛上发布了同样的问题。不确定 Google Groups 是如何工作的——它可能需要审查或其他什么——但我在任何地方都看不到我自己的问题。我再次发布它只是为了确保它,但在点击“POST”后它就会消失并重定向到主页。
标签: c# azure azureservicebus masstransit azure-servicebus-queues