ActiveMQ的安装和队列模式

Windows 中安装ActiveMQ

  1. 下载安装包
  2. 解压
  3. 直接启动这里写图片描述
    • 使用管理员的身份运行installService.bat
    • 打开服务:这里写图片描述
    • 错误解决方法:当打开服务的时候,提示错误码1067的解决方法:
      1. 打开这里写图片描述
      2. 设置为Java.exe的绝对路径这里写图片描述
  4. 使用服务启动
    • 点击Manage ActiveMQ broker
    • 使用用户名和密码登录,都是admin这里写图片描述

linux 下安装ActiveMQ

  1. 下载安装包这里写图片描述
  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账号登录这里写图片描述

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();
        }
    }
  • 结果:
    • 查看服务器这里写图片描述

创建消费者

@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();
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值