我一直在阅读JMS,ActiveMQ和Camel。
根据我的理解,如果我们需要集成多个系统,其中集成仅涉及相同格式的消息路由,则activeMQ足够,否则我们可以选择骆驼。
现在,如果由于某些异常或事务回滚导致消息重新交付到期,activeMQ会将失败的消息发送到死信队列。 我们没有使用Apache骆驼,因为activeMQ足以满足我们的要求,但是如果我要监视和审核失败的消息还是应该增加开销,我应该选择骆驼吗? 我以前没有使用过骆驼,所以如果有人可以指导我如何监视死信。我们正在考虑为每个主题或队列设置死信队列,并为客户提供审核日志。
答案 0 :(得分:2)
取决于。您想对DLQ消息做什么?您预计会有多少错误?
如果错误率非常低并且很难预测如何处理错误,则可能有些警报可能会触发人员查看DLQ上的DLQ消息以弄清楚如何处理。重试?提交错误报告?打电话给某人?
要监视DLQ,您可以使用JMX或与之等效的http Jolokia监视队列,并在队列大小大于零时发送警报。
您当然可以使用Apache Camel以某种方式处理无效消息。就像通过电子邮件发送,将其保存到错误报告系统中或采取其他措施来警告用户,使用其他逻辑来处理消息或不进行处理一样。您可以在任何框架中编写此逻辑,而不仅仅是Apache Camel。但是骆驼是一个不错的选择。
无论如何,DLQ管理没有灵丹妙药。您必须构建适合您的需求和限制的系统(手动或自动)。