【问题标题】:c#. MSMQ .The max size of a single messageC#。 MSMQ . 单条消息的最大大小
【发布时间】:2012-12-29 05:13:36
【问题描述】:

使用 msmq 我想发送一条消息(接近 1 GB)。我想发送 字节数组。但我只能发送 4 MB如何绕过这个限制?

【问题讨论】:

  • 限制一直是 MSMQ 的一部分。也许你应该看看另一个包。
  • 是的。 “阅读文档”和“学习你使用的工具”是值得讨论的概念。长期以来,4mb 限制是 MSMQ 的基础——它不是文件存储。

标签: c# size message msmq


【解决方案1】:

如您所知,MSMQ 中消息的最大大小为 4Mb,最好使用其他解决方案。

解决方案: 如果要传输超过此大小的数据,则必须对其进行剪切 在发送方分成块,并在接收方重新组合。

为什么 MSMQ 消息有 4MB 的限制? 查看this 博客。

如何使用 Microsoft 消息队列发送大于 4 MB 的文件here

【讨论】:

  • 在测试的过程中,我发现这个大小(4 MB)
  • 是的。尝试将数据拆分为服务器部分,每部分
  • @Zhenia :将发送方的字节数组限制在 4 MB 以下,并在目的地合并它们。
【解决方案2】:

你必须坚持纯 MSMQ 吗?如果您可能考虑切换到NServiceBus,它有一个名为DataBus 的功能,它可以有效地将大负载放置在MSMQ 之外,但会将负载绑定到MSMQ 消息。

(根据我的经验,这也使得使用 MSMQ 比 C# 更愉快。但是 YMMV)


如果你不能使用 NServiceBus,你至少可以从中得到启发。生成一个随机文件名,将内容存储在两个端点都可以访问的共享上,在您的消息中包含文件名。

【讨论】:

    猜你喜欢
    • 2015-03-11
    • 1970-01-01
    • 2010-09-27
    • 2014-06-13
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多