分布式-信息方式-ActiveMQ示例

实战

代码如下:

信息生产者

package test.mq.helloword;

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 Sender {
       public static void main(String[] args) throws JMSException, InterruptedException {
        ConnectionFactory   ConnectionFactory=new ActiveMQConnectionFactory(
                "tcp://localhost:61616"
                );
        Connection connection=ConnectionFactory.createConnection();
        connection.start();
        Session session=connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
        Destination destination=session.createQueue("my_queue");
        MessageProducer Producer=session.createProducer(destination);
     
        for(int i=1;i<=3;i++){
            TextMessage message=session.createTextMessage("message----"+i);
            //Thread.sleep(1000);  
            Producer.send(message);
        }
         session.commit();
         session.close();
         connection.close();    
    }
}

ActiveMQ页面

  信息消费者

package test.mq.helloword;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.broker.ConsumerBrokerExchange;

public class Receiver {
    
    public static void main(String[] args) throws JMSException {
        ConnectionFactory   ConnectionFactory=new ActiveMQConnectionFactory(
                "tcp://localhost:61616"
                );
        Connection connection=ConnectionFactory.createConnection();
        connection.start();
        Session session=connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); 
        Destination destination=session.createQueue("my_queue");
        MessageConsumer Consumer=session.createConsumer(destination);
        
         while(true){
             TextMessage msg=(TextMessage) Consumer.receive();
             msg.acknowledge();
             if(msg==null)break;
             System.out.println("接收信息:------》"+msg.getText());
             }
         if(connection!=null){
             connection.close();
         }
         }
    
    
    
}

控制台

ActiveMQ页面

原文地址:https://www.cnblogs.com/caoyingjielxq/p/9330192.html