我已经阅读了有关真正的消息传递的消息,而不是在总线上发送有效负载,它会发送一个标识符。在我们的例子中,我们有很多旧版应用程序/服务,并且这些应用程序/服务旨在接收消息(xml)的有效负载,接近4MB(关闭MSMQ限制)。有没有一种方法让nService总线自动处理大量的有效负载和持久化消息或其他解决方法,以便发布者/订户服务不必担心有效负载大小,也不必担心如何解除/重新合并有效载荷? 预先感谢您。带有大型XML消息的nServiceBus
4
A
回答
0
我不知道任何内部NServiceBus功能将额外数据与带外消息关联。
我认为你是正确的 - 如果整个有效载荷不能在限制范围内,那么最好将它保存在你自己的其他地方,然后传递一个ID。
但是,您可能会设计一个消息结构,使得消息可以实现一个IHasPayload接口(可能会包含一个ID和一个Type?),然后您的应用程序逻辑可以有一个通用方法得到一个IHasPayload消息。
1
您可以使用Message Sequence模式。在NServiceBus中,你将在发送者中分割有效负载,将这些块包装在一个自定义的'序列'IMessage中,然后在另一端实现一个传奇以提取重组块&。您需要花费一些时间来处理错误处理&超时。
1
您可以随时使用压缩消息的快速“修复”。
使用二进制序列化器序列化的POCO可以被大幅压缩。我们看到我们的消息是20mb压缩到3.1mb。
因此,如果您的邮件在4mb左右徘徊,那么只需编写一个IMessageSerializer可以很简单,该IMessageSerializer会自动压缩邮件。
相关问题
- 1. NServiceBus消息拦截?
- 2. 订阅来自NServiceBus的所有消息
- 3. 与nservicebus同步的消息
- 4. 使用NServiceBus处理消息时消耗大量内存的MSMQ
- 5. nservicebus用户没有收到消息
- 6. NServiceBus消耗第三方xml
- 7. NServiceBus消息是否可以具有匿名类型属性?
- 8. NServiceBus稍后处理消息
- 9. NServiceBus:共享消息DLL
- 10. NServiceBus - 无法发送消息
- 11. 如何重播nServiceBus消息
- 12. NServiceBus消息队列建立
- 13. NServiceBus延迟消息处理
- 14. NServiceBus:消息级加密
- 15. NServiceBus消息超时timeToReachQueue
- 16. NServicebus延迟消息传奇?
- 17. NServiceBus。当消息太多时?
- 18. NServiceBus:指定消息顺序
- 19. NServiceBus回复消息警告
- 20. NServiceBus无法接收消息
- 21. nservicebus消息系列化
- 22. 带Azure和XML串行器的NServiceBus
- 23. 调试Nservicebus消息发送问题 - 消除消息
- 24. 如何控制nServicebus丢失的消息
- 25. NServiceBus,使用的消息太多了吗?
- 26. NServicebus的Javascript消息处理器
- 27. 使NServiceBus丢失消息的东西
- 28. NServiceBus,找不到消息类型的传奇
- 29. NServiceBus RabbitMQ - DirectRoutingTopology与每种消息类型的单独交换
- 30. 解析带有大量标签的大型XML
谢谢大卫, 想到类似的东西,但你需要另一个子系统,作为一个存储库(如数据库)和您的消息依赖于该子系统启动和运行。这增加了整体解决方案和消息可靠性以及与此相关的所有复杂性。我希望能找到不同的东西(不是奇迹,而是我可能不知道的nBusService功能)。 – 2010-05-05 12:04:08