gpt4 book ai didi

java - 使用 spring jmsTemplate 发送大量消息

转载 作者:行者123 更新时间:2023-11-30 10:57:39 24 4
gpt4 key购买 nike

asyncSend 设置为 true 的情况下发送持久消息是否有最佳实践或指南。

我们没有配置事务管理器

我们有 ~40k-50k 消息,这些消息是使用配置有

的 jmsTemplate 发送的
org.apache.activemq.pool.PooledConnectionFactory

我们有一个 for 循环,它遍历消息列表并使用 发送它们

jmsTemplate.convertAndSend(destination, msg)

我们经常看到大量消息丢失,当我们关闭 asyncSend 时,我们获得了可靠性,但生产者性能下降了 95%

最佳答案

由于问题不是很详细,所以有点猜测,但无论如何。

根据配置,ActiveMQ 可能对队列有内存限制(持久消息和非持久消息之间也可能不同)。因此,当内存用完时,您的 asyncSend 调用将忽略警告并继续将消息传递到“黑洞”,直到内存被消费者释放。

没有 Elixir 可以实现最佳性能和最大可靠性。不幸的是。

但是,我会尝试在连接工厂上设置一个 producerWindowSize 以在收到代理确认之前允许一些指定数量的数据。确切的值是您需要尝试的东西,取决于场景以及代理配置/资源。

关于java - 使用 spring jmsTemplate 发送大量消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32528214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com