ActiveMQ之淺談一

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();

}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章