1.下载最新的activeMQ压缩包,地址为http://activemq.apache.org/activemq-5152-release.html
2.解压压缩包,找到bin目录之下的win32/win64目录下的activemq.bat进行启动,也可点击InstallService.bat 进行服务方式启动启动成功后浏览器打开http://127.0.0.1:8161/admin 输入默认的账号admin密码admin即可,成功如图:
3.创建java项目引入activemq-all-5.15.2.jar(mq解压后第一级目录之下)
4.active mq 分为队列模式和订阅者模式以下我们以案例分别介绍
4.1之队列模式
第一步:创建生产者
public class jmsProducer { //默认连接用户名 private static final String url = "tcp://127.0.0.1:61616"; //默认连接密码 private static final String username = "admin"; //默认连接地址 private static final String password = "admin"; //队列名称 private static final String jmsName = "queue-test"; public static void main(String[] args) throws JMSException { //1.创建连接工厂 ConnectionFactory connectionFactory = (ConnectionFactory) new ActiveMQConnectionFactory(username, password, url); //2.得到连接 Connection connection = connectionFactory.createConnection(); //3.启动连接 connection.start(); //4。创建会话 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //5.创建目标 Destination destination = session.createQueue(jmsName); //6.创建生产者 MessageProducer producer = session.createProducer(destination); //发送10条消息 for (int i = 0; i < 10; i++) { TextMessage textMessage = session.createTextMessage("消息:"+i); producer.send(textMessage); System.out.println("已发送"+textMessage.getText()); } connection.close(); } }右键运行完成之后进入浏览器查看如图成功
第二步创建消费者
public class jmsCustomer { //默认连接用户名 private static final String url = "tcp://127.0.0.1:61616"; //默认连接密码 private static final String username = "admin"; //默认连接地址 private static final String password = "admin"; //队列名称 private static final String jmsName = "queue-test"; public static void main(String[] args) throws JMSException { //1.创建连接工厂 ConnectionFactory connectionFactory = (ConnectionFactory) new ActiveMQConnectionFactory(username, password, url); //2.得到连接 Connection connection = connectionFactory.createConnection(); //3.启动连接 connection.start(); //4。创建会话 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //5.创建目标 Destination destination = session.createQueue(jmsName); //创建消费者 MessageConsumer customer = session.createConsumer(destination); customer.setMessageListener(new MessageListener() { @Override public void onMessage(Message message) { // TODO Auto-generated method stub TextMessage textMessage = (TextMessage) message; try { System.out.println("已接收:"+textMessage.getText()); } catch (JMSException e) { // TODO Auto-generated catch block e.printStackTrace(); }右键运行完成后进入浏览器查看消息信息如图成功
ps:如果我们同时开启两个消费者,当生产者发出消息后,两个消费者以平均分配的方式共享资源
4.2之订阅者模式
其实订阅者模式与队列模式,使用方法几乎相似,只要改变会话床建方式即可
//4。创建会话 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);ps: 使用订阅者模式必须先运行消费者进行消息的订阅,然后生产者发出的消息才能接收到的到
如果创建两个消费者,在订阅者模式之下,当生产者发出消息后,两个消费者均可收到所有消息
这也是队列模式和消费者模式的一个重要的区别。