activeMQ发送与接受消息模板代码
生活随笔
收集整理的這篇文章主要介紹了
activeMQ发送与接受消息模板代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
發送著:
/*** */ package activemqAPI.helloworld;import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; 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;/*** @author weijie** 2018年9月3日*/ public class Sender {public static void main(String[] args) throws JMSException {//第一步:建立ConnnectionFactory工廠對象,需要填入用戶名,密碼,以及連接地址,默認端口:61616(activemq.xml中可以改) ,均使用默認即可,tcp://localhost:61616ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616");//第二步:通過ConnectionFactory工廠對象我們創建一個Connection連接,并且調用Connection的start方法開啟連接,Connection默認是關閉的Connection connection = connectionFactory.createConnection();connection.start();//第三步:通過Connection對象創建Session會話(上見下文環境對象),用于接收消息,參數配置1為是否啟用事務,參數配置2為簽收模式,一般設置自動簽收 // Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); //收到消息后,要手動去簽收消息 Session session = connection.createSession(Boolean.TRUE, Session.CLIENT_ACKNOWLEDGE); //第四步:通過Session創建Destination對象 ,指的是一個客戶端用來指定生產消息目標和消費消息來源的對象,在PTP模式中,Destination被稱作Topic即主題,在程序中可以使用多個Queue和TopicDestination destination = session.createQueue("queue1 ");//第五步:我們需要Session對象創建消息的發送和接受對象(生產者和消費者)MessageProducer/MessageConsumerMessageProducer messageProducer = session.createProducer(destination);//第六步:我們可以使用MessageProducer的serDeliveyMode方法為其設置持久化特性和非持久化特性(DeliveryMode)messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);//第七步:最后我們使用JMS規范的TextMessage形式創建數據(通過Session對象),并用MessageProducer的send方法發送數據,同理客戶端使用receive方法接受消息TextMessage textMessage = session.createTextMessage();textMessage.setText("hello java");messageProducer.send(textMessage);//使用事務提交session.commit();if(connection != null) {connection.close();}} }接收者:
/*** */ package activemqAPI.helloworld;import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageConsumer; import javax.jms.Session; import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;/*** @author weijie** 2018年9月3日*/ public class Receiver {public static void main(String[] args) throws JMSException {//第一步:建立ConnnectionFactory工廠對象,需要填入用戶名,密碼,以及連接地址,默認端口:61616(activemq.xml中可以改) ,均使用默認即可,tcp://localhost:61616ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616");//第二步:通過ConnectionFactory工廠對象我們創建一個Connection連接,并且調用Connection的start方法開啟連接,Connection默認是關閉的Connection connection = connectionFactory.createConnection();connection.start();//第三步:通過Connection對象創建Session會話(上見下文環境對象),用于接收消息,參數配置1為是否啟用事務,參數配置2為簽收模式,一般設置自動簽收//三種簽收模式的優缺點//使用事務的方式進行消息的發送 // Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); //使用clent要手動去簽收,消息才能被消費Session session = connection.createSession(Boolean.TRUE, Session.CLIENT_ACKNOWLEDGE); //第四步:通過Session創建Destination對象 ,指的是一個客戶端用來指定生產消息目標和消費消息來源的對象,在PTP模式中,Destination被稱作Topic即主題,在程序中可以使用多個Queue和TopicDestination destination = session.createQueue("queue1 ");//第五步:我們需要Session對象創建消息的發送和接受對象(生產者和消費者)MessageProducer/MessageConsumerMessageConsumer messageConsumer = session.createConsumer(destination);//第七步:最后我們使用JMS規范的TextMessage形式創建數據(通過Session對象),并用MessageProducer的send方法發送數據,同理客戶端使用receive方法接受消息while(true) {TextMessage msg = (TextMessage)messageConsumer.receive();//手動簽收msg.acknowledge();System.out.println("收到的內容:"+msg .getText());if(msg == null)break;}if(connection != null) {connection.close(); }} }總結
以上是生活随笔為你收集整理的activeMQ发送与接受消息模板代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jmater参数说明
- 下一篇: 相对路径转成绝对路径