ActiveMQ技术笔记(一)

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息中间件。

ActiveMQ 的安装在此不做介绍,大家可以自行百度。ActiveMQ安装后,启动可以通过Web页面访问,URL:http://127.0.0.1:8161/,如图所示:

ActiveMQ技术笔记(一)_第1张图片

点击“Queues | Topics ”可以查询消息数量。

ActiveMQ默认使用的TCP连接端口是61616.

ActiveMQ的编码模板:
发送端:

public class QueueSender {  

       public static void main(String[]args)throws JMSException {

       //通过username,password,url创建连接工厂接口

       ConnectionFactory factory = new ActiveMQConnectionFactory(

              ActiveMQConnection.DEFAULT_USER,

              ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");

       //通过连接工厂创建一个新的连接接口

       Connection connection = factory.createConnection();

       //通过连接接口创建一个会话接口

       Session session = connection.createSession(false,

              Session.AUTO_ACKNOWLEDGE);

       //会话接口创建有关主题的目标接口

       Destination destination = session.createQueue("test_queue");

       //会话接口再根据目标接口来创建一个消息生产者接口

       MessageProducer producer =session.createProducer(destination);

       //调用会话生成一个文本消息

       Message message = session.createTextMessage("Hello World!");

       //通过生产者接口Send将消息发布到ActiveMQ服务器

       producer.send(message);

       //关闭会话

       session.close();

       //关闭连接

       connection.close();

    }

 

 

消费端:

public classQueueReceiver {  

public static void main(String[] args)throws JMSException {

       // 通过username,password,url创建连接工厂接口

       ConnectionFactory factory = new ActiveMQConnectionFactory(

              ActiveMQConnection.DEFAULT_USER,

              ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");

       // 通过连接工厂创建一个新的连接接口

       Connection connection = factory.createConnection();

       connection.start();

       // 通过连接接口创建一个会话接口

       Session session = connection.createSession(false,

              Session.AUTO_ACKNOWLEDGE);

       // 会话接口创建有关主题的目标接口

       Destination destination = session.createQueue("test_queue");

       // 会话接口再根据目标接口来创建一个消息消费者接口

       MessageConsumer consumer =session.createConsumer(destination);

       // 消息消费者接收消息

       TextMessage message = (TextMessage) consumer.receive();

       if (null != message) {

           System.out.println("收到消息:" + message.getText());

       }

       // 关闭会话

       session.close();

       // 关闭连接

       connection.close();

    }         

        }  

ActiveMQ技术笔记(一)_第2张图片 ActiveMQ技术笔记(一)_第3张图片

topic与queue的区别。

你可能感兴趣的:(JAVA消息处理,activemq,消息中间件,apache,web)