doker安装RabbitMQ以及用java连接

news2024/11/25 10:45:51

目录

doker安装:

 RabitMq安装:

 java链接


doker安装:

参考链接(非常详细):

docker安装以及部署_docker bu shuminio_春风与麋鹿的博客-CSDN博客

安装好后开启doker

//启动docker服务
systemctl start docker
//停止docker服务
systemctl stop docker
//重启docker服务
systemctl restart docker
//查看docker服务状态
systemctl status docker

 RabitMq安装:

1. 拉取do'ke中的rabbitmq镜像

docker pull rabbitmq:3.7.16-management

2.启动

docker run -d --hostname my-rabbit  -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 5672:5672 -p 15672:15672  rabbitmq:3.7.16-management
 
 
参数解释:
RABBITMQ_DEFAULT_USER=admin(账号为admin)可以自己随意改
RABBITMQ_DEFAULT_PASS=admin(登录密码为admin)可以自己随意改
-p 5672:5672 :rabbitmq的默认端口,映射到虚拟机5672端口,程序中,访问用
-p 15672:15672:rabbitmq的浏览器访问登录界面端口,映射到虚拟机15672端口,浏览器访问端口

3.浏览器访问

输入虚拟机ip和端口号进行访问

 java链接

链接之前在防火墙中开发5672端口,否则会连接超时

#关闭防火墙
systemctl stop firewalld
#查看开启了哪些端口号
firewall-cmd --list-ports
#添加端口号
sudo firewall-cmd --permanent --zone=public --add-port=5672/tcp
#操作防火墙后要重启防火墙
firewall-cmd --reload

生产者:

public class Send {
    //Ctrl+Shift+U大写转换
    public static final String QUEUE_NAME = "hello";

    //发消息
    public static void main(String[] args) throws IOException, TimeoutException {
        //创建一个工厂
        ConnectionFactory factory = new ConnectionFactory();
        //工厂IP连接RabbitMQ的队列
        factory.setHost("192.168.29.129");
        //port可不设置,默认5672
//        factory.setPort(5672);
        //用户名
        factory.setUsername("admin");
        //密码
        factory.setPassword("admin");
        //创建连接
        Connection connection = factory.newConnection();
        //获取信道
        Channel channel = connection.createChannel();
        /**
         * 生成一个队列
         * 1.队列名称
         * 2.队列里面的消息是否持久化(磁盘)默认情况消息存储在内存中
         * 3.该队列是否只供一个消费者进行消费是否进行消息共享,false可以多个消费者消费 true:只能一个消费者消费
         * 4.是否自动删除最后一个消费者端开连接以后该队一句是否自动删除 true自动删除 false不自动删除
         * 5.其它参数
         */
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);
        //发消息
        String message = "Hello World!";
        //初次使用
        /**
         * 发送一个消费
         * 1.发送到哪个交换机
         * 2.路由的Key值是哪个本次是队列的名称
         * 3.其它参数信息
         * 4.发送消息的消息体
         */
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
        System.out.println("消息发送完毕");

    }
}

启动:

 页面显示消息已发送成功

 消费者:

public class Recive {
    public static final String QUEEN_NAME = "hello";

    //接收消息
    public static void main(String[] args) throws Exception {
        //创建连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("192.168.29.129");
        //port可不设置,默认5672
        factory.setPort(5672);
        //用户名
        factory.setUsername("admin");
        //密码
        factory.setPassword("admin");
        Connection connection = factory.newConnection();
        //用连接创建信道
        Channel channel = connection.createChannel();

        /**
         * 消费者消费消息
         *1.消费哪个队列
         * 2.消费成功之后是否要自动应答 true 代表的自动应答 false 代表手动应答
         * 3.消费者未成功消费的回调
         * 4.消费者取消消费的回调
         */
        //声明: 接收消息
        DeliverCallback deliverCallback = (consumerTag,message) ->{
            System.out.println(message);
            System.out.println(new String(message.getBody()));
        };
        //取消消息时的回调
        CancelCallback cancelCallback = consumerTag ->{
            System.out.println("消费消息被中断");
        };

        channel.basicConsume(QUEEN_NAME,true,deliverCallback,cancelCallback);


    }
}

启动:消息接收成

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/701650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PromQL讲解与实战操作

PromQL讲解与实战操作 一、PromQL 介绍 PromQL(Prometheus Query Language)是 Prometheus 内置的数据查询语言,它能实现对事件序列数据的查 询、聚合、逻辑运算等。它并且被广泛应用在 Prometheus 的日常应用当中,包括对数据查询…

在Linux服务器上简单部署一个Python项目

一、在对应的服务器上检查有无Python环境 大部分Linux系统都是自带了Python环境的,查看是否具备Python的运行环境,可以通过命令Python --version 或者 Python3 --version 查看。如果你的项目需要Python3的环境,而系统又没有,则需要…

Linux 开启 swap 分区详细教程

故事背景: 哥们云机器内存资源不足,搞个 kafka eagle 监控,刚跑起来就卡死了,就很无语,哥们忙活,算了直接开搞,内存不够,硬盘来凑,拿着硬盘去做swap分区,也能…

JavaEE-SpringMVC-云借阅图书管理系统(包含源码、数据库sql文件、报告)

文章目录 前言云借阅系统功能结构图云借阅系统结构层次云借阅系统项目文件组织结构开发环境具体操作1. Maven仓库修改2. MySQL数据库配置文件3. Tomcat运行截图 总结 前言 参考借鉴黑马程序员书籍;和老师上课讲解的代码和PPT。核心代码由自己编写完成,核…

【夜深人静学数据结构与算法】回溯算法

目录 前言: 回溯算法: 回溯法的常见应用: 回溯法的模板: 回溯法的图解:​ 案例: 77. 组合 - 力扣(LeetCode) 总结: 前言: 回溯算法是一个比较抽象的算法,因此我们…

JavaScript中的面向对象

面向对象编程是一种编程范式。 面向对象。何为对象? 复习一下: JavaScript中的数据类型分为: 原始类型:数值型,字符串型,布尔型、ES6新增的symbol 特殊类型:undefined型,null型 组合…

chatgpt赋能python:隐藏输入:保护密码和敏感数据的有效方法

隐藏输入:保护密码和敏感数据的有效方法 在今天的数字时代,网络安全成为了无所不在的话题。密码和敏感数据的泄漏是任何人都不想看到的结果。因此,在这种情况下,隐藏输入成为了保护我们的密码和敏感数据的有效方法。 Python是数…

el-date-picker设置右侧显示图标

<template><div><el-form ref"form" label-width"100px"><el-form-item label"日期&#xff1a;" class"date_box"><el-date-picker v-model"time" type"date" :clearable"true&…

【GaussDB分布式特性】

GaussDB分布式特性 实验环境一、分布式架构二、分片和分区 实验环境 华为云GaussDB云数据库&#xff0c;规则如下&#xff1a; 集群拓扑结构&#xff0c;如下&#xff1a; 一、分布式架构 逻辑架构 常用部署方式 部署说明&#xff1a; 1.双AZ采用带第三方仲裁方式部署&am…

利用低代码平台实现协同办公,助力企业提升效益

概要&#xff1a;本文介绍了协同办公的作用&#xff0c;以及利用低代码平台实现协同办公的优势。同时也分享了天翎为华晨汽车打造的低代码协同工具&#xff0c;帮助企业提高管理效率&#xff0c;改善运营模式&#xff0c;提升产品质量及生产精益化。展示了咨询库、原料质量录入…

无锁队列ringbuff实现以及性能

文章目录 一、使用场景二、对比有锁优势三、无锁队列实现方式四、循环队列实现1&#xff09;数据结构设计3&#xff09;代码实现4&#xff09;性能测试5&#xff09;总结 一、使用场景 无锁队列主要适用于高并发场景或者对性能要求较高的场景&#xff0c;主要使用场景有如下几…

pytorch的permute(dims) 函数的功能详解

有三块 二维矩阵 如下 把二维矩阵堆叠起来&#xff0c;就是三维 矩阵 这样的矩阵 从x方向看&#xff08;0维&#xff09; 有三块 记为3&#xff0c;每块从y方向看&#xff08;1维&#xff09;的行是3&#xff0c;从z方向看&#xff08;2维&#xff09;列也是3&#xff0c;故三…

计算机中丢失mfc140.dll怎么解决?mfc140.dll是什么文件?

在计算机运行软件或者游戏的时候&#xff0c;提示mfc140.dll丢失&#xff0c;无法正常启动运行。 mfc140.dll是Windows操作系统中用于支持C编程语言的一个动态链接库&#xff0c;它包含了C运行时库的一些基本功能。用于支持Microsoft Visual Studio的MFC&#xff08;Microsoft …

论文解读:FastSAM | Fast Segment Anything | 基于yolov8-seg实现 比SAM快50倍

发表时间&#xff1a;2023.06.21 论文地址&#xff1a;http://export.arxiv.org/pdf/2306.12156 项目地址&#xff1a;https://github.com/CASIA-IVA-Lab/FastSAM 最近提出的任意分割模型&#xff08;SAM&#xff09;在许多计算机视觉任务中产生了重大影响。它正在成为许多高级…

NIO总结

简要介绍 NIO&#xff08;Non-blocking IO&#xff09;是Java 1.4版本开始引入的一个新的IO API&#xff0c;旨在代替传统IO&#xff0c;它引入了缓冲区和通道的概念&#xff0c;通过选择器实现多路复用。 传统IO会区分字节流InputStream和OutputStream以及字符流Reader和Wri…

GD32 时钟和晶振修改

芯片型号&#xff1a;gd32f470zi 库版本&#xff1a;GD32F4xx_Firmware_Library_V3.0.4 当需要修改外部晶振和主频时需要修改到以下几个地方 1.gd32f4xx.h //此宏定义为我们实际使用的外部晶振频率&#xff0c;此处改为实际使用的25M #define HXTAL_VALUE ((uint32_t)2…

单片机学习 13-I2C_EEPROM

I2C-EEPROM 实验 ​ 这一章我们来学习如何使用 51 单片机的 IO 口模拟 I2C 时序&#xff0c;并实现与AT24C02&#xff08;EEPROM&#xff09;之间的双向通信。开发板板载了 1 个 EEPROM 模块&#xff0c;可实现IIC 通信。本章要实现的功能是&#xff1a;系统运行时&#xff0c…

如何排查 Electron V8 引发的内存 OOM 问题

经过长达大半年时间的崩溃治理后&#xff0c;基于 Electron 框架开发的新版 PC 淘宝直播推流客户端的稳定性终于赶超基于QT 框架开发的旧版本了。剩下的崩溃问题中有 40% 是跟内存 OOM 有关&#xff0c;其中 V8FatalErrorCallback js heap OOM 问题整整困扰了我一个多月。历经千…

Pytorch--模型微调finetune--迁移学习 (待继续学习)

https://www.bilibili.com/video/BV1Z84y1T7Zh/?spm_id_from333.788&vd_source3fd64243313f29b58861eb492f248b34 主要方法 torchvision 微调timm 微调半精度训练 背景&#xff08;问题来源&#xff09; 解决方案 大模型无法避免过拟合&#xff0c;

嵌入式综合性开源项目分享

不定期有小伙伴问&#xff1a; 哪里有好的嵌入式项目&#xff1f; 怎么才能提高编程水平&#xff1f; 有实战项目可以分享一下吗&#xff1f; 目录 第一&#xff1a;嵌入式综合Awesome Embedded 第二&#xff1a;多功能按键MultiButton 第三&#xff1a;软件定时器模块M…