1

1.png 2.png我开发了一个示例代码来测试主题和保险丝上的持久主题,我遇到了一个问题。

示例代码说明 我的示例代码包含 3 个包,每个包都有自己的骆驼上下文和自己的路由,所以我在 3 个包中有 3 个路由,如下所示:

bundle1 路由:使用文件系统中的文件并将其发送到队列

<route id="producer-route">
    <from uri="file:D://camel_test"/>
    <to uri="activemq:queue:service.queue"/>
</route>

bundle 2 路由:消费前一个队列中的消息并将其发送到主题

<route id="router-route">
    <from uri="activemq:queue:service.queue"/>
    <to uri="activemq:topic:router.topic"/>
</route>

bundle3 路由:消费上一个主题的消息并将其发送到文件系统

<route id="consumer-route">
<from uri="activemq:topic:router.topic?clientId=consumer&amp;durableSubscriptionName=bar"/>
<to uri="file:D://camel_test2"/>

当我将文件放入第一个文件夹 "D://camel_test" 时,示例代码在 95% 的情况下成功运行,文件从 "D://camel_test" 文件夹中消失并移动到第二个文件夹 "D ://camel_test2"

问题描述 • 有时,5% 的情况下,文件没有被第二条路由消费,当检查 jconsole 上的消费者和队列时,我发现队列的 oa 注册消费者,如随附的 jconsole 屏幕截图所示(2 .png)。o 队列的入队计数增加,而队列的出队计数为零,如附加的 jconsole 屏幕截图 (1.png) 所示。

• 该问题出现在许多情况下,但最可重现的情况是在重新启动 Fuse ESB 之后。

• 问题不出现在每次fuse 重启时,示例代码在fuse 重启后多次成功运行且没有问题。

重要提示:刷新 bundle2 和 bundle3 后问题总是消失。

您能否提一些建议?

4

0 回答 0