ActiveMQ中关于消息接受效率的问题

xujiaweiDaShen 2013-11-01 09:07:30
我用ptp的形式实现,数据发送的时候效率蛮快的,达到每秒上万条数据,但在数据接收的时候出现了问题,只能达到每秒四十条的数据,
  consumer.setMessageListener(new MessageListener(){
public void onMessage(Message msg){
TextMessage text = (TextMessage) msg;
try {
System.out.println(text.getText()+"..恩,我收到了");
Destination replyTo = msg.getJMSReplyTo();
if(replyTo != null){
Message replyMessage = session.createTextMessage(text.getText()+"的消息已被接受");
String correlationID = msg.getJMSMessageID();
replyMessage.setJMSCorrelationID(correlationID);
MessageProducer producer = session.createProducer(replyTo);
producer.send(replyMessage);
}
session.commit();//在事务提交的时候,表示数据签收了,不签收表示数据还会存在
} catch (JMSException e) {
e.printStackTrace();
}
}
});
仔细研究了下,这主要是session.commit的原因,他每接受一次都要提交一次,所以导致速率下降,我把它去掉了,速度是达到了要求,可他没有对队列里的信息进行确认,导致他队列里的信息以为没有被接受,所以下次接受的时候还能在接受一遍,求大神赐教该怎么解决速度的问题,并能让消息同时确认了
...全文
195 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xujiaweiDaShen 2013-11-01
  • 打赏
  • 举报
回复
我都是用session的,Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);,我如果不设置true的话,他在发送的时候速率就低的可怜,我不知道是不是这的问题

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧