小编Man*_*har的帖子

消费者没有从ActiveMQ接收消息

我们面临着ActiveMQ及其消费者的随机问题.我们观察到,即使它们连接到ActiveMQ队列,也很少有消费者没有收到消息.但在消费者重新启动后它可以正常工作.

我们在ActiveMQ端有一个名为testQueue的队列.消费者正在尝试从此队列中取消队列消息.我们正在使用Spring的DefaultMessageListenerContainer来实现此目的.消息正从ActiveMQ Broker传递到使用者节点.从tcpdump来看,很明显,消息正在到达消费者节点,但实际的消费者代码无法看到消息.换句话说,消息似乎停留在ActiveMQ使用者代码或Spring的DefaultMessageListenerContainer中.

请参阅下图.为了更清楚地解决这个问题.消息正在到达消费者节点,但它没有到达"实际消费者类",这意味着消息卡在AMQ消费者代码或Spring DMLC中.

在此输入图像描述

以下是从ActiveMQ管理员处捕获的详细信息.

队列名称/待定消息计数/消费者计数/消息排队/消息排队testQueue/9/1/9/0

以下是更多细节.

Connection-ID/SessionId/Selector/Enqueues/Dequeues/Dispatched/Dispatched-Queue/Prefetch ID:bearsvir52-45176-1375519181268-3:5/1// 9/0/9/9/250

从第二个表中可以明显看出,消息正在传递给消费者,但消费者并未确认消息.因此,消息被卡在代理端的Dispatched-Queue中.

您的通知几点:

1)b/w Broker节点和消费者节点没有时间差.

2)在消费者端观察到tcpdump.我们可以看到MessageDispatch(Openwire)数据包被转移到消费者节点,但是找不到MessageAck(Openwire).

3)有时它在节点上工作,有时它在同一节点上创建问题.

activemq-classic spring-jms

7
推荐指数
1
解决办法
9010
查看次数

MongoDB嵌入在java中

我从文档中得到的是,它在其他机器上作为一个单独的进程运行,我可以使用java的mongo db客户端驱动程序与它进行通信,我可以进行正常操作.

但我怀疑如果我可以在我的java应用程序中使用MongoDB作为嵌入式数据库?我的意思是,不是作为其他机器上的单独进程,也不是作为同一台机器上的单独进程.它应该是java应用程序的一部分.

你能帮帮我吗?

mongodb

2
推荐指数
1
解决办法
5333
查看次数

标签 统计

activemq-classic ×1

mongodb ×1

spring-jms ×1