ActiveMQ入门demo

微信公众号:Java患者

ActiveMQ 简介

ActiveMQ是基于 Java 中的 JMS 消息服务规范实现的一个消息中间件,通过中间件我们可以实现异步调用、流量削峰等。

ActiveMQ安装

  1. 将 apache-activemq-5.15.11-bin.tar.gz 上传到服务器

  2. 解压 tar -zxvf apache-activemq-5.15.11-bin.tar.gz
    在这里插入图片描述

  3. 启动

进到bin目录

  ./activeMQ start 
  ./activeMQ status

查看状态后 ActiveMQ not running, Active没启动.
在这里插入图片描述

  1. 输出日志到控制台,看错误信息
./activemq console

在这里插入图片描述
在报错信息中我们看到了hostname关键词,到百度查阅资料后是因为主机名中含有下划线,

hostnamectl set-hostname  Java

通过该句命令修改主机的名字为Java,然后重新执行

./activemq start

启动成功

ActiceMQ DEMO

环境

导入相关依赖

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-all</artifactId>
    <version>5.15.9</version>
</dependency>
生产者

开启一个生产者

package com.zero.day1;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
 * ActiveMQ测试类 Hello World
 */
public class Demo1 {

    public static void main(String[] args) {

        Demo1.producerQuene();
    }

    public static void producerQuene (){
        try {
            // Create a ConnectionFactory 创建工厂连接对象
            ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");

            // Create a Connection 使用连接工厂创建一个连接对象
            Connection connection = connectionFactory.createConnection();
            connection.start();

            // Create a Session 创建会话session对象
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            // create the destination (Topic or Quene) 创建目标对象(一对一or一对多)
            Destination destination = session.createQueue("TEST.FOO1");

            // Create a MessageProducer from the Session to the Topic or Quene 创建生产者对象
            MessageProducer producer = session.createProducer(destination);

            String text = "hello world";

            // create a messages 创建一个消息对象
            TextMessage message = session.createTextMessage(text);

            // tell the producer to send the message 发送消息
            producer.send(message);
			System.out.println("发送成功");			
            // clean up 关闭资源
            session.close();
            connection.close();



        } catch (Exception e) {
            System.out.println("Caught" + e);
            e.printStackTrace();

        }




    }
}

控制台
在这里插入图片描述
在这里插入图片描述
被消费者消费

 public static  void consumerQuene () {
        try {

            // create a connectionFactory 创建工厂连接对象
            ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");

            // create a connection 使用连接工厂创建一个连接对象
            Connection connection = connectionFactory.createConnection();
            connection.start();


            //create a session 创建会话session对象
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            // create the destination(Topic or Quene) 创建目标对象(一对一or一对多)
            Destination destination = session.createQueue("TEST.FOO");

            // create a MessageConsumer from the session to the Topic or Quene 创建消费者对象
            MessageConsumer consumer = session.createConsumer(destination);

            // wait for a message 创建一个消息对象
            Message message = consumer.receive(1000);


            if (message instanceof TextMessage) {
                TextMessage textMessage = (TextMessage) message ;
                String text = textMessage.getText();

                System.out.println("Received: " + text);
            } else {
                System.out.println("Received: " + message);

            }

            consumer.close();
            session.close();
            connection.close();

        } catch (Exception e) {
            System.out.println("Caught: " + e);
            e.printStackTrace();
        }



    }

在这里插入图片描述

在这里插入图片描述

结语

小编是一枚Java Coder,业余写文章,现主营微信公众号《Java患者》,喜欢的话关注我的公众号或者加我微信我们一起学习Java
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值