您的位置:首页 > 其它

ActiveMQ之浅谈一

2017-10-07 23:02 99 查看
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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: