使用Camel拦截ActiveMQ消息

sxpgvts3  于 2022-11-07  发布在  Apache
关注(0)|答案(2)|浏览(209)

我需要注册消息离开ActiveMQs队列的时间。我有Q1,消费者是Jboss服务器上的一个java应用程序,通过activemq-ra.rar。
有没有可能用Camel(包含在ActiveMQ中)拦截器来实现这一点?我不是程序员,所以XML DSL中的解决方案将是完美的。
任何帮助都将不胜感激。谢谢。

ryoqjall

ryoqjall1#

使用advisoryForConsumed并将咨询消息转发到队列为我解决了这个问题。
在activemq.xml中:

<destinationPolicy>
    <policyMap>
        <policyEntries>
            <policyEntry queue="Q1" advisoryForConsumed="true"/>
        </policyEntries>
    </policyMap>
</destinationPolicy>

然后将ActiveMQ.Advisory.MessageConsumed.Queue.Q1转发到另一个队列AvisoryConsumed。

<destinationInterceptors> 
    <virtualDestinationInterceptor> 
        <virtualDestinations> 
            <compositeTopic name="ActiveMQ.Advisory.MessageConsumed.Queue.Q1" >
                <forwardTo><queue physicalName="AvisoryConsumed" /> </forwardTo>
        </compositeTopic>
    </virtualDestinations>
</virtualDestinationInterceptor>

那么当一条消息被使用时,AvisoryConsumed中会有一条brokerOutTime消息和原始消息的属性。

scyqe7ek

scyqe7ek2#

查看日志代理插件,它可以将信息输出到日志中,然后您可以使用该日志来构建度量。
参考:Logging Broker Plugin

相关问题