【问题标题】:ActiveMQ message consume from queue take more in Linux environment在 Linux 环境下,ActiveMQ 消息从队列中消耗更多
【发布时间】:2021-10-01 02:44:24
【问题描述】:

我正在本地和 IIS 中创建一个示例 .net 核心解决方案,在一秒钟内消耗队列中的较大消息,但我部署在 Linux 服务器中,可能需要更多时间来消耗队列中的消息。我不知道如何解决它请帮助我。下面我附上了我的示例代码。

 string topic = "QueueTest";
            QueueConnectionFactory.OptimizeAcknowledge = true;
            QueueConnectionFactory.AlwaysSyncSend = false;
            using (IConnection connection = QueueConnectionFactory.CreateConnection("admin", "admin"))
            {

                connection.Start();
                Apache.NMS.ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
                using (IDestination dest = session.GetQueue(topic))
                using (IMessageConsumer consumer = session.CreateConsumer(dest))
                {
                    // TimeSpan span4 = TimeSpan.FromSeconds(3);
                    IMessage msg = consumer.Receive();
                    if (msg != null)
                    {
                        ITextMessage message = msg as ITextMessage;
                        string data = message.Text;
                    }
                }
            }

【问题讨论】:

  • 这是什么意思 - “在一秒钟内在队列中消耗更大的消息”?
  • 2MB 短信
  • 很遗憾,这并没有回答我的问题。
  • 请帮助我如何在队列中发送最多 50MB 的消息。
  • 如果你想发送50MB的消息那么你应该考虑迁移到支持任意large messagesActiveMQ Artemis

标签: linux .net-core activemq message-queue apache-nms


【解决方案1】:

检查receiveBufferSizesendBufferSize,您可以将其添加到您的连接网址:

?transport.receiveBufferSize=65536&transport.sendBufferSize=16384

【讨论】:

  • 好的,但是在本地和类似 Windows 环境的 IIS 中使用时会出现同样的消息。但在 Linux 环境中不会使用相同的消息。
  • 请帮助我如何在队列中发送最多 50MB 的消息@muhammed
猜你喜欢
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
  • 2015-09-23
  • 2014-11-17
  • 1970-01-01
  • 2018-09-28
  • 1970-01-01
  • 2013-12-13
相关资源
最近更新 更多