ActiviMQ是一个开源的面向消息的中间件,实现了JMS(java message service)标准。主要在解耦、异步化、数据最终一致性方面被应用。
ActiveMQ支持的消息类型:text、bytes、map、stream、object
生产者创建过程:
ActiveMQConnectionFactory factory = new
ActiveMQConnectionFactory("tcp://ip:port");
Connection connection = factory.createConnection();
//第一个参数为是否开启事物会话
//第二个参数为 1 自动签收 2手动签收 3延迟签收
Session session = connection.createSession(true,
Session.AUTO_ACKNOWLEDGE);
// queue 为点对点模式 topic为发布/订阅模式
Destination destination = session.createQueue("queueName");
MessageProducer producer = session.createProducer(destination);
//2开启持久化
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
//text bytes map stream object
TextMessage msg = new ActiveMQTextMessage();
msg.setText("hello");
producer.send(msg);
session.commit();
session.close();
消费者的创建过程:
ActiveMQConnectionFactory factory = new
ActiveMQConnectionFactory("tcp://ip:port");
Connection connection = factory.createConnection();
Session session = connection.createSession(true,
Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("queueName");
MessageConsumer consumer =session.createConsumer(destination);
//还有一种自动监听模式
TextMessage message = (TextMessage) consumer.receive();
String msg = message.getText();
session.commit();
session.close();
ActiveMQ主要有两种消息传递模式
1.点对点 point to point(queue)
2.发布/订阅 pub/sub (topic)