- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果其中一个代理实例发生故障,ActiveMQ 中的故障转移传输会很好地工作 - 生产者会自动切换到下一个好的代理实例。
如果代理达到其内存限制(通过 activemq.xml 中的 systemUsage
属性配置),我预计会出现相同的行为。然而在这种情况下,它只是开始在日志中抛出“内存已满”警告,但生产者应用程序中的 jmsTemplate.convertAndSend 方法只是挂起。
我尝试为 systemUsage 属性设置 sendFailIfNoSpace="true"
选项。在这种情况下,生产者应用程序刚刚开始在 convertAndSend
上抛出 org.springframework.jms.ResourceAllocationException:Usage Manager Store is Full
异常,并且无论如何都没有切换到良好的代理实例。
有人可以建议如何在异常和/或“内存已满”情况下进行故障转移吗?
最佳答案
当代理内存不足时,生产者将被阻塞,直到清除一些内存为止。这是在定期使用消息的假设下进行的。
真正应该担心的是队列内存不足的原因。
您生成消息的速度是否比使用消息的速度快?如果是这样,故障转移不会真正帮助您,因为下一个代理将很快耗尽内存。ActiveMQ 支持生产者流量控制,以确保生产者不会压垮代理。 (see here)
消费的消息发生了什么?它们会永久保存吗?如果是这样,请考虑使用 timeToLive 来确保为传入消息腾出空间。
如果由于某种原因,您需要一个又一个地填充队列,您可以在生产者中捕获异常并手动进行故障转移。
另请参阅类似的问题:ActiveMQ: Reject connections from producers when persistent store fills
关于java - ActiveMQ:如果内存/数据存储已满,则进行故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19663812/
我编写了一个函数来包含两个 DateTime 之间的小时列表。 但最后它看起来并不是很容易阅读,这让我想对它进行单元测试,即使我正在从事的项目根本没有进行单元测试。 所以我的问题是,是否有一种更易读或
我一定是漏掉了什么,因为我还没有在网上找到这个非常基本的问题的答案。我正在使用能够容纳三个 int 的缓冲 channel 值。 然后我使用三个 goroutine 来填充它,一旦缓冲 channel
我发现如果一个矩阵(几乎)满了,那么将它存储在稀疏中会导致(更多)更多的计算时间。 虽然以稀疏形式存储完整矩阵是微不足道的,但我只想知道这一事实背后的原因。 我的推测是稀疏索引读取将是计算时间的主要贡
root@root:~# sudo du -ch --max-depth=1 --exclude=/home/ / du: cannot access ‘/sys/kernel/slab/L2TP/I
基本上我想创建一个 UIProgressView 在 3 秒内从 0.0(空)到 1.0(满)。有人能指出我在 swift 中使用 NSTimer 与 UIProgressView 的正确方向吗? 最
我是一名优秀的程序员,十分优秀!