broker插件的执行顺序可以定义吗?
Can the order in which broker's plugins execute be defined?
我需要实现 2 个适合 amq:discardingDLQBrokerPlugin 类别的过滤器,并且我需要先执行一个。
我可以在一个中实现两个过滤器的逻辑class,但是由于业务逻辑非常不同,我更喜欢两个。
我使用两个不同的插件添加过滤器:com.filter.FilterAPlugin 和 com.filter.FilterBPlugin。过滤器执行顺序遵循 "last defined first executed" 逻辑。
示例:在此代理配置中
<amq:broker useJmx="false" persistent="false" schedulerSupport="true">
<amq:transportConnectors>
<amq:transportConnector uri="tcp://localhost:0" />
</amq:transportConnectors>
<amq:plugins>
<amq:discardingDLQBrokerPlugin dropAll="true" dropTemporaryTopics="true" dropTemporaryQueues="true" />
<bean xmlns="http://www.springframework.org/schema/beans" class="com.filter.FilterAPlugin" />
<bean xmlns="http://www.springframework.org/schema/beans" class="com.filter.FilterBPlugin" />
</amq:plugins>
</amq:broker>
先执行com.filter.FilterBPlugin中添加的过滤器。
声明 beans 的顺序是否定义了过滤器的执行顺序?我在 apache MQ web
中找不到关于此的文档
BrokerService使用责任链模式,因此执行顺序由对象初始化顺序定义。
我需要实现 2 个适合 amq:discardingDLQBrokerPlugin 类别的过滤器,并且我需要先执行一个。
我可以在一个中实现两个过滤器的逻辑class,但是由于业务逻辑非常不同,我更喜欢两个。
我使用两个不同的插件添加过滤器:com.filter.FilterAPlugin 和 com.filter.FilterBPlugin。过滤器执行顺序遵循 "last defined first executed" 逻辑。
示例:在此代理配置中
<amq:broker useJmx="false" persistent="false" schedulerSupport="true">
<amq:transportConnectors>
<amq:transportConnector uri="tcp://localhost:0" />
</amq:transportConnectors>
<amq:plugins>
<amq:discardingDLQBrokerPlugin dropAll="true" dropTemporaryTopics="true" dropTemporaryQueues="true" />
<bean xmlns="http://www.springframework.org/schema/beans" class="com.filter.FilterAPlugin" />
<bean xmlns="http://www.springframework.org/schema/beans" class="com.filter.FilterBPlugin" />
</amq:plugins>
</amq:broker>
先执行com.filter.FilterBPlugin中添加的过滤器。
声明 beans 的顺序是否定义了过滤器的执行顺序?我在 apache MQ web
中找不到关于此的文档BrokerService使用责任链模式,因此执行顺序由对象初始化顺序定义。