ActiveMQ 消息发送的多种方式

ActiveMQ Producer 发送消息有同步异步两种方式。


mq发送消息的多种方式.png
ActiveMQ 事务

优点: 保证消息不丢失.
缺点: 性能损失。客户端多了事务创建,提交,回滚的IO消耗。Broker需要额外维护事务信息。

client-broker事务交互.png
Sync Send Msg With TX
Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
Topic topic = session.createTopic("Test.Transactions");
MessageProducer producer = session.createProducer(topic);
producer.send(session.createTextMessage("message"));
// 没有显示commit,不会把消息添加到pending队列中.
session.commit();
Sync Send Msg Without TX
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(session.createQueue("studyQueue"));
Message message = session.createTextMessage("hello everybody!");
// 消息会立刻发送到broker
producer.send(message);
session.close();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容