当前位置: 首页 > article >正文

Docker安装ActiveMQ镜像以及通过Java生产消费activemq示例

拉取镜像

docker pull docker.io/webcenter/activemq

启动容器

docker run -d --name myactivemq -p 61616:61616 -p 8162:8161 docker.io/webcenter/activemq:latest

这样就代表启动成功了

浏览器访问

http://localhost:8162/

admin admin

开启验证

修改配置文件/opt/activemq/conf/activemq.xml

/opt/activemq/conf# vi activemq.xml

<plugins>

     <simpleAuthenticationPlugin>

        <users>

            <authenticationUser username="guest" password="guest" groups="guests"/>

            <authenticationUser username="user" password="user" groups="users"/>

            <authenticationUser username="admin" password="admin" groups="admins"/>

            <authenticationUser username="artemis" password="artemis" groups="admins"/>

        </users>

     </simpleAuthenticationPlugin>

</plugins>

修改完重启镜像即可

通过java代码生产,消费activemq

生产者

package com.activemq.demo;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class ActiveMQProducer {

    private static final String DEFAULT_BROKER_HOST = "tcp://localhost:61616";

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

// 创建连接工厂

        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(DEFAULT_BROKER_HOST);

// 获取 connection

        final Connection connection = connectionFactory.createConnection("admin", "admin");

// 启动

        connection.start();

// 创建会话 session,参数第一个是事务,第二个是签收

        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

// 创建目的地,queue 或者 topic

        Queue queue = session.createQueue("testq1804");

创建消息的生产者

        MessageProducer producer = session.createProducer(queue);

// 创建消息

        for (int i = 0; i < 100000; i++) {

//        while(true){

            String message = "{\"id\":"+System.currentTimeMillis()+", \"name\":\""+i+"\"}"; //System.currentTimeMillis() + "这是一条消息" + new Date();

            TextMessage textMessage = session.createTextMessage(message);

            System.out.println(message);

// 发送消息给 mq

            producer.send(textMessage);

            try {

                Thread.sleep(500l);

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    }

}

消费者

package com.activemq.demo;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.Connection;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageConsumer;

import javax.jms.MessageListener;

import javax.jms.Queue;

import javax.jms.Session;

import javax.jms.TextMessage;

public class ActiveMQConsumer {

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

        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

// 获取 connection

        final Connection connection = connectionFactory.createConnection("user", "user");

// 启动

        connection.start();

// 创建会话 session,参数第一个是事务,第二个是签收

        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

// 创建目的地,queue 或者 topic

        Queue queue = session.createQueue("testq1804"); // test_topic_m1

            MessageConsumer consumer = session.createConsumer(queue);

        consumer.setMessageListener(new MessageListener() {

            @Override

            public void onMessage(Message message) {

                try {

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

                } catch (JMSException e) {

                    e.printStackTrace();

                }

            }

        });

    }

}


http://www.kler.cn/a/349695.html

相关文章:

  • LMI Gocator GO_SDK VS2019引用配置
  • 商密测评题库详解:商用密码应用安全性评估从业人员考核题库详细解析(8)
  • S4 HANA明确税金本币和外币之间转换汇率确定(OBC8)
  • Sqoop源码修改:增加落地HDFS文件数与MapTask数量一致性检查
  • Github 2025-01-25Rust开源项目日报Top10
  • iperf 测 TCP 和 UDP 网络吞吐量
  • Linux下多任务编程(网络编程2)
  • 【C++刷题】力扣-#108-将有序数组转换为二叉搜索树
  • Unity发送Http
  • 使用 MongoDB 构建 AI:利用实时客户数据优化产品生命周期
  • 案例分享—国外优秀UI卡片设计作品赏析
  • Acrel-1200——分布式光伏运维云平台
  • bat(批处理脚本学习)
  • markdown 笔记,语法,技巧
  • k8s中pod管理
  • 判断 HTTP/2 多路复用是否在服务器上实现
  • 本地windows文件上传到远程阿里云windows server方法
  • 自监督行为识别-时空线索解耦(论文复现)
  • 【FPGA开发】Xilinx锁相环IP核仿真输出初始有一段高电平引发的思考与探究
  • 桂林旅游一点通:SpringBoot平台应用
  • MySQL 密码忘记了怎么办?
  • Spring Boot在医疗病历B2B交互系统中的应用前景
  • AWS账号与邮箱的关系解析
  • 【记录】Django数据库的基础操作
  • 【计算机网络 - 基础问题】每日 3 题(三十六)
  • OPC UA与PostgreSQL如何实现无缝连接?