如何通知我的应用程序(生产者)它被ActiveMQ服务器阻止?

时间:2018-04-25 13:19:38

标签: spring-integration activemq activemq-artemis

我正在使用Artemis ActiveMQ来处理我的应用程序的内部异步过程。
所有连接逻辑都由Spring Integration处理。
我在artemis服务器上遇到了磁盘空间不足的情况。这导致artmeis服务器阻止我的消息生成器,没有任何警告(artemis服务器日志中的警告除外)。但是,它可以是任何其他阻止方案 应用程序继续生成消息,但不知道消息没有写入队列 我的应用程序(生产者)如何被告知这样的基础设施问题,所以我可以抛出异常或记录错误,这将在我的应用程序中可见'结束。

2 个答案:

答案 0 :(得分:0)

如果您的应用程序异步发送消息,则无法知道发送消息的问题(客户端专门发生的问题除外)。发送消息异步是“一劳永逸”;客户只是发送它们,并不真正关心它们发生了什么。您需要同步发送 以便在代理上获得任何问题的迹象。

答案 1 :(得分:0)

与ActiveMQ一样,Artemis服务器支持producer flow control(个人从未使用过它)。虽然ActiveMQ documentation明确指出它也适用于异步生成器,但是如果您在连接工厂上设置了生产者窗口大小,则Artemis文档对此不做任何说明。但是窗口概念是一样的。你可能应该试一试。