ActiveMQ两种使用方法
1:首先去官网下载ActiveMQ官网地址为:http://activemq.apache.org如下图
2:解压缩文件,启动文件下的bat文件,启动服务
3:创建Maven工程,添加如下依赖包
依赖包包为:
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.9.0</version>
</dependency>
4:创建生成者---消费者(先有消息才能去接收消息)方式发送消息(方式一)
消息的生产者
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class AppProducer {
private static final String url="tcp://192.168.1.105:61616";
private static final String queueName="queue-test";
public static void main(String[] args) throws JMSException {
//1:创建connectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2:创建连接
Connection connection = connectionFactory.createConnection();
//3:启动连接
connection.start();
//4:创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5:创建目标
Destination destination = session.createQueue(queueName);
//6:创建生产者
MessageProducer producer = session.createProducer(destination);
for (int i = 0; i < 100; i++) {
TextMessage msg = session.createTextMessage("消息内容为:"+i);
producer.send(msg);
}
connection.close();
}
}
消息的消费者
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class AppConsumer {
private static final String url="tcp://192.168.1.105:61616";
private static final String queueName="queue-test";
public static void main(String[] args) throws JMSException {
//1:创建connectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2:创建连接
Connection connection = connectionFactory.createConnection();
//3:启动连接
connection.start();
//4:创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5:创建目标
Destination destination = session.createQueue(queueName);
//6:创建消费者
MessageConsumer consumer = session.createConsumer(destination);
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
TextMessage msg=(TextMessage) message;
try {
System.out.println(msg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
//connection.close();
}
}
5:订阅-发布方式发送消息(方式二)---先订阅消息,后发布消息,订阅者才能接收到消息
消息的订阅者
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class AppConsumer1 {
private static final String url="tcp://192.168.1.105:61616";
private static final String topic="topic-test";
public static void main(String[] args) throws JMSException {
//1:创建connectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2:创建连接
Connection connection = connectionFactory.createConnection();
//3:启动连接
connection.start();
//4:创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5:创建目标
Destination destination = session.createTopic(topic);
//6:创建消费者
MessageConsumer consumer = session.createConsumer(destination);
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message message) {
TextMessage msg=(TextMessage) message;
try {
System.out.println(msg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
//connection.close();
}
}
消息发布者:
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class AppProducer2 {
private static final String url="tcp://192.168.1.105:61616";
private static final String topic="topic-test";
public static void main(String[] args) throws JMSException {
//1:创建connectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
//2:创建连接
Connection connection = connectionFactory.createConnection();
//3:启动连接
connection.start();
//4:创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//5:创建目标
Destination destination = session.createTopic(topic);
//6:创建生产者
MessageProducer producer = session.createProducer(destination);
for (int i = 0; i < 100; i++) {
TextMessage msg = session.createTextMessage("消息内容为:"+i);
producer.send(msg);
}
connection.close();
}
}