您的位置:首页 > 运维架构 > Apache

ActiveMQ技术笔记(一)

2016-05-23 18:17 441 查看
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息中间件。

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



点击“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();
    }         

        }  





topic与queue的区别。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息