標籤:隊列 des producer rod sum 發送 cti 127.0.0.1 rri
一、隊列模式
生產者
import javax.jms.Connection;import javax.jms.ConnectionFactory;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 { public static final String url = "tcp://127.0.0.1:61616"; public static final String queueName = "queue-test"; public static void main(String[] args) throws JMSException{ //1. 建立ConnectionFactory ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( url); //2. 建立Connection 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++){ //7. 建立訊息 TextMessage textMessage = session.createTextMessage( "test" + i); //8. 發布訊息 producer.send( textMessage); System.out.println( "發送訊息" + textMessage.getText()); } //9. 關閉連結 connection.close(); }}
消費者
import javax.jms.Connection;import javax.jms.ConnectionFactory;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 AppConsumer { public static final String url = "tcp://127.0.0.1:61616"; public static final String queueName = "queue-test"; public static void main(String[] args) throws JMSException{ //1. 建立ConnectionFactory ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( url); //2. 建立Connection 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); //7. 建立一個監聽器 consumer.setMessageListener( new MessageListener() { @Override public void onMessage(Message message) { TextMessage textMessage = ( TextMessage) message; try{ System.out.println( "0接收訊息" + textMessage.getText()); }catch( JMSException e){ e.printStackTrace(); } } }); //8. 關閉連結 //connection.close(); }}
二、主題模式
生產者
import javax.jms.Connection;import javax.jms.ConnectionFactory;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 { public static final String url = "tcp://127.0.0.1:61616"; public static final String topicName = "topic-test"; public static void main(String[] args) throws JMSException{ //1. 建立ConnectionFactory ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( url); //2. 建立Connection Connection connection = connectionFactory.createConnection(); //3. 啟動連結 connection.start(); //4. 建立會話 Session session = connection.createSession( false, Session.AUTO_ACKNOWLEDGE); //5. 建立一個目標 Destination destination = session.createTopic( topicName); //6. 建立一個生產者 MessageProducer producer = session.createProducer( destination); for( int i=0; i<100; i++){ //7. 建立訊息 TextMessage textMessage = session.createTextMessage( "test" + i); //8. 發布訊息 producer.send( textMessage); System.out.println( "發送訊息" + textMessage.getText()); } //9. 關閉連結 connection.close(); }}
消費者
import javax.jms.Connection;import javax.jms.ConnectionFactory;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 AppConsumer { public static final String url = "tcp://127.0.0.1:61616"; public static final String topicName = "topic-test"; public static void main(String[] args) throws JMSException{ //1. 建立ConnectionFactory ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( url); //2. 建立Connection Connection connection = connectionFactory.createConnection(); //3. 啟動連結 connection.start(); //4. 建立會話 Session session = connection.createSession( false, Session.AUTO_ACKNOWLEDGE); //5. 建立一個目標 Destination destination = session.createTopic( topicName); //6. 建立一個消費者 MessageConsumer consumer = session.createConsumer( destination); //7. 建立一個監聽器 consumer.setMessageListener( new MessageListener() { @Override public void onMessage(Message message) { TextMessage textMessage = ( TextMessage) message; try{ System.out.println( "0接收訊息" + textMessage.getText()); }catch( JMSException e){ e.printStackTrace(); } } }); //8. 關閉連結 //connection.close(); }}
activeMQ隊列模式和主題模式的Java實現