ActiveMQ的安装和队列模式

Windows 中安装ActiveMQ

  1. 下载安装包
    • 下载地址
    • http://activemq.apache.org/activemq-5152-release.html
  2. 解压
  3. 直接启动ActiveMQ的安装和队列模式_第1张图片
    • 使用管理员的身份运行installService.bat
    • 打开服务:ActiveMQ的安装和队列模式_第2张图片
    • 错误解决方法:当打开服务的时候,提示错误码1067的解决方法:
      1. 打开ActiveMQ的安装和队列模式_第3张图片
      2. 设置为Java.exe的绝对路径ActiveMQ的安装和队列模式_第4张图片
  4. 使用服务启动
    • 点击Manage ActiveMQ broker
    • 使用用户名和密码登录,都是adminActiveMQ的安装和队列模式_第5张图片

linux 下安装ActiveMQ

  1. 下载安装包ActiveMQ的安装和队列模式_第6张图片
  2. 将安装包拷贝到linux
  3. 解压tar -zxvf 文件名(解压在当前文件夹)
  4. 进入到bin文件夹启动服务
    • ./activemq start
    • netstat -anp|grep 61616
  5. 设置防火墙,开启端口号
    • /sbin/iptables -I INPUT -p tcp –dport 8161 -j ACCEPT
    • /sbin/iptables -I INPUT -p tcp –dport 61616 -j ACCEPT
    • 保存:/etc/rc.d/init.d/iptables save
  6. 打开web管理页面:http:ip:8161
  7. 使用admin账号登录ActiveMQ的安装和队列模式_第7张图片

JMS代码演练

使用JMS接口规范的连接ActiveMQ
- 创建生产者
- 创建发布者
- 创建消费者
- 创建订阅者

创建生产者

    @Test
//  创建生产者 
    public void test1() {
//      url是连接消息中间件的地址
        String url = "tcp://192.168.79.134:61616";
//      目标的名字
        String queueName = "hello";
//      创建连接工厂,通过url
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        try {
//      创建连接
            Connection connection = connectionFactory.createConnection();
//          创建会话
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//          创建一个目标
            Destination destination = session.createQueue(queueName);
//          创建生产者
            MessageProducer producer = session.createProducer(destination);

            for(int i = 0 ; i < 100 ; i ++) {
//              创建消息
                TextMessage message = session.createTextMessage("test :" + i);
//              发布消息
                producer.send(message);
                System.out.println("成功发送:" + message);
            }
//          关闭连接
            session.close();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
  • 结果:
    • 查看服务器ActiveMQ的安装和队列模式_第8张图片

创建消费者

@Test
//  创建消费者
    public void test3() {
//      url是连接消息中间件的地址
        String url = "tcp://192.168.79.134:61616";
//      目标的名字
        String queueName = "hello";
//      创建连接工厂,通过url
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        try {
//      创建连接
            Connection connection = connectionFactory.createConnection();
//          启动连接
            connection.start();
//          创建会话
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//          创建一个目标
            Destination destination = session.createQueue(queueName);
//          创建消费者
            MessageConsumer consumer = session.createConsumer(destination);
//          创建一个监听器
            consumer.setMessageListener(new MessageListener() {

                public void onMessage(Message message) {
                    TextMessage textMessage = (TextMessage)message;
                    try {
                        System.out.println("消费者2:" + textMessage.getText());
                    } catch (JMSException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                }
            });
//          由于消息的接受是异步的这里不能关闭连接
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }

你可能感兴趣的:(ActiveMQ)