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

rabbitmq容器化部署

需求 容器化部署rabbitmq服务

部署服务

找到如下官网信息版本

官网版本发布信息

这里看到最新版本是3.13版本,这里在3.13中找一个版本下载容器镜像即可。

找到dockrhub.com中 找到3.13.2版本镜像。

容器服务安装此处省略

现在下载容器镜像需要配置容器代理

~# cat /etc/docker/daemon.json
{"registry-mirrors": ["https://hub.iyuu.cn","https://docker.1panel.live"]
}

下载rabbitmq镜像

docker pull rabbitmq:3.13.2-management

部署容器服务

docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password  rabbitmq:3.13.2-management

查看容器状态,容器异常退出,查看容器日志

# docker ps -a
CONTAINER ID   IMAGE                        COMMAND                  CREATED             STATUS                           PORTS                                                                                                                                                 NAMES
a739628b8375   rabbitmq:3.13.2-management   "docker-entrypoint.s…"   About an hour ago   Exited (134) About an hour ago      n# docker logs a73
Failed to create thread: Operation not permitted (1)
Aborted (core dumped)

这个报错是容器出现了权限问题,部署容器的时候需要加root特权的,这里加入参数docker时加上参数 --privileged=true
privileged=true:获得真正的root权限

删除这个异常退出的容器 重新部署

 docker run -d -p 15672:15672  -p  5672:5672 --privileged=true --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password  rabbitmq:3.13.2-management
bda51306d6691788437c49f1a5284c84be85abf10653ac5eb8930283a969b6e8
:~# docker ps
CONTAINER ID   IMAGE                        COMMAND                  CREATED         STATUS        PORTS                                                                                                                                                 NAMES
bda51306d669   rabbitmq:3.13.2-management   "docker-entrypoint.s…"   2 seconds ago   Up 1 second   4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp   some-rabbit

查看到容器服务已正常运行 无报错

验证及访问服务

访问 web端 用IP地址+15672  账号密码 user/password

到这里 mq服务部署 配置无误。

rabbitmq配置LTS

这边配置LTS依然在容器环境下

以下代码在宿主机上运行

# 创建 CA 证书
# 创建一个 CA 密钥文件,用于签发证书。
openssl genrsa -out ca_key.pem 4096# 使用 CA 密钥创建一个自签名的 CA 证书。
openssl req -new -x509 -days 3650 -key ca_key.pem -out ca_certificate.pem -subj "/C=US/ST=California/L=San Francisco/O=YourOrg/CN=YourOrg CA"# 创建服务器证书和密钥
# 创建一个服务器密钥文件。
openssl genrsa -out server_key.pem 4096# 使用服务器密钥创建一个证书请求。
openssl req -new -key server_key.pem -out server_csr.pem -subj "/C=US/ST=California/L=San Francisco/O=YourOrg/CN=yourserver.example.com"# 使用 CA 证书签发服务器证书。
openssl x509 -req -in server_csr.pem -CA ca_certificate.pem -CAkey ca_key.pem -CAcreateserial -out server_certificate.pem -days 365

确认所有证书文件都已正确生成:

•ca_key.pem:CA 密钥文件

•ca_certificate.pem:CA 证书文件

•server_key.pem:服务器密钥文件

•server_certificate.pem:服务器证书文件

以下代码在宿主机运行

提前把配置文件从容器服务中取出来配置文件路径是/etc/rabbitmq/conf.d/10-defaults.conf

docker cp 容器名称:/etc/rabbitmq/conf.d/10-defaults.conf .

把配置文件获取到本地后开始编辑配置文件,追加以下配置文件

listeners.ssl.default = 5671ssl_options.cacertfile = /etc/rabbitmq/ca_certificate.pem
ssl_options.certfile   = /etc/rabbitmq/server_certificate.pem
ssl_options.keyfile    = /etc/rabbitmq/server_key.pem
ssl_options.verify     = verify_peer
ssl_options.fail_if_no_peer_cert = true

注意  上面生成的ssl配置文件是在宿主机的路径下,配置文件指定的路径是容器内的路径,这里要注意替换配置文件路径。

这里需要提前给上面的配置文件和秘钥授权不然会有如下报错。

报错参考如下:这里是因为秘钥文件在宿主机是因root创建的,容器内是已rabbitmq用户运行的程序,这里权限访问不到,会报错路径找不到文件。

2024-09-14 07:05:01.736878+00:00 [error] <0.156.0> ssl_options.keyfile invalid, file does not exist or cannot be read by the node
2024-09-14 07:05:01.747045+00:00 [error] <0.156.0> Error preparing configuration in phase validation:
2024-09-14 07:05:01.747111+00:00 [error] <0.156.0>   - ssl_options.keyfile invalid, file does not exist or cannot be read by the node2024-09-14 07:05:01.749037+00:00 [error] <0.156.0>
2024-09-14 07:05:01.749037+00:00 [error] <0.156.0> BOOT FAILED
2024-09-14 07:05:01.749037+00:00 [error] <0.156.0> ===========
2024-09-14 07:05:01.749037+00:00 [error] <0.156.0> Error during startup: {error,failed_to_prepare_configuration}
2024-09-14 07:05:01.749037+00:00 [error] <0.156.0>

进入容器查看服务运行的用户,容器内是用rabbitmq用户运行的程序

解决以上报错给文件授权

# 在配置文件和秘钥文件 的存储目录执行
chmod 777 *

把run命令 准备好,一般建议放到sh文件中。(注意秘钥文件路径)

 docker run -d     --hostname my-rabbit  --privileged=true   --name some-rabbit     -v /root/rabbitmq/10-defaults.conf:/etc/rabbitmq/conf.d/10-defaults.conf     -v /root/rabbitmq/ca_certificate.pem:/etc/rabbitmq/ca_certificate.pem     -v /root/rabbitmq/server_certificate.pem:/etc/rabbitmq/server_certificate.pem     -v /root/rabbitmq/server_key.pem:/etc/rabbitmq/server_key.pem     -e RABBITMQ_DEFAULT_USER=user     -e RABBITMQ_DEFAULT_PASS=password  -p 5671:5671   -p 5672:5672     -p 15672:15672     rabbitmq:3.13.2-management

查看容器日志信息

2024-09-14 08:05:32.133593+00:00 [info] <0.669.0> Ready to start client connection listeners
2024-09-14 08:05:32.135054+00:00 [info] <0.822.0> started TCP listener on [::]:5672
2024-09-14 08:05:32.136665+00:00 [info] <0.842.0> started TLS (SSL) listener on [::]:5671completed with 6 plugins.
2024-09-14 08:05:32.207988+00:00 [info] <0.669.0> Server startup complete; 6 plugins started.
2024-09-14 08:05:32.207988+00:00 [info] <0.669.0>  * rabbitmq_prometheus
2024-09-14 08:05:32.207988+00:00 [info] <0.669.0>  * rabbitmq_federation
2024-09-14 08:05:32.207988+00:00 [info] <0.669.0>  * rabbitmq_management
2024-09-14 08:05:32.207988+00:00 [info] <0.669.0>  * rabbitmq_management_agent
2024-09-14 08:05:32.207988+00:00 [info] <0.669.0>  * rabbitmq_web_dispatch
2024-09-14 08:05:32.207988+00:00 [info] <0.669.0>  * oauth2_client
2024-09-14 08:05:32.218109+00:00 [info] <0.9.0> Time to start RabbitMQ: 5468 ms
2024-09-14 08:05:45.800176+00:00 [info] <0.886.0> Waiting for Mnesia tables for 30000 ms, 9 retries left
2024-09-14 08:05:45.800326+00:00 [info] <0.886.0> Successfully synced tables from a peer
2024-09-14 08:05:46.794458+00:00 [info] <0.914.0> Waiting for Mnesia tables for 30000 ms, 9 retries left
2024-09-14 08:05:46.794598+00:00 [info] <0.914.0> Successfully synced tables from a peer
2024-09-14 08:44:57.191730+00:00 [notice] <0.1672.0> TLS server: In state hello at tls_record.erl:561 generated SERVER ALERT: Fatal - Unexpected Message
2024-09-14 08:44:57.191730+00:00 [notice] <0.1672.0>  - {unsupported_record_type,13}

最重要的要搜索到以下两句话,这个是可以证明TLS已启用状态了,基本可以说是没有问题了。

2024-09-14 08:05:32.135054+00:00 [info] <0.822.0> started TCP listener on [::]:5672
2024-09-14 08:05:32.136665+00:00 [info] <0.842.0> started TLS (SSL) listener on [::]:5671

参考官网链接

服务验证

这里访问 IP地址+端口号  先测试一下 管理端是否可以访问,账号密码是 user/password,就是上面容器传进去的变量。这边可以访问到,就证明MQ是没有明显报错的。

TLS验证

先在其它宿主机上telnet 5671 TLS的专用端口 是否可以通,目前看到端口可以通,基本无误,可以联系研发进行 下一步程序连接TLS端口的测试和验证。

/rabbitmq# telnet 110.120.110.110 5671
Trying 110.120.110.110...
Connected to 110.120.110.110.
Escape character is '^]'.

参考官网的配置文件

相关文章:

rabbitmq容器化部署

需求 容器化部署rabbitmq服务 部署服务 找到如下官网信息版本 官网版本发布信息 这里看到最新版本是3.13版本&#xff0c;这里在3.13中找一个版本下载容器镜像即可。 找到dockrhub.com中 找到3.13.2版本镜像。 容器服务安装此处省略 现在下载容器镜像需要配置容器代理 ~#…...

如何用 Helm Chart 安装指定版本的 GitLab Runner?

本分分享如何使用 Helm 来在 Kubernetes 集群上安装极狐GitLab Runner。整体步骤分为&#xff1a;Helm 的安装、vaules.yaml 文件的配置、Runner 的安装、Runner 的测试。 极狐GitLab 为 GitLab 在中国的发行版&#xff0c;中文版本对中国用户更友好。极狐GitLab 支持一键私有…...

el-table使用合计和固定列时,滚动条被覆盖区域无法拖拽问题

pointer-events文档 解决思路为通过pointer-events实现事件穿透&#xff0c;不响应固定列的拖拽&#xff0c;而是响应其子元素的拖拽事件 /deep/.el-table__fixed, /deep/.el-table__fixed-right {pointer-events: none; } /deep/.el-table__fixed *, /deep/.el-table__fixed-…...

【疑难杂症2024-005】docker-compose中设置容器的ip为固定ip后,服务无法启动

本文由Markdown语法编辑器编辑完成。 1.背景&#xff1a; 我们的产品是通过docker image的方式发布&#xff0c;并且编排在docker-compose.yml中发布。在同一个docker-compose.yml中的服务&#xff0c;相互之间&#xff0c;可以通过对方的服务名和端口&#xff0c;来直接访问…...

uView使用心得

说实话我不爱用这个库&#xff0c;感觉很鸡肋&#xff0c;坑很多&#xff0c;可能没用习惯 picker选择器 绑定默认值是通过设置index&#xff0c;并且这个index需要通过api设置进去&#xff0c;设置defalutindex绑定值无效&#xff08;只有初始化可以&#xff0c;后面动态改变…...

RabbitMQ(高阶使用)死信队列

文章内容是学习过程中的知识总结&#xff0c;如有纰漏&#xff0c;欢迎指正 文章目录 一、什么是死信队列&#xff1f; 二、死信队列使用场景 三、死信队列如何使用 四、打车超时处理 1.打车超时实现 以下是本篇文章正文内容 一、什么是死信队列&#xff1f; 先从概念解释上搞…...

怎么安装docker-compose

使用下列命令下载docker-compose&#xff08;可选择其他版本&#xff09; wget https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 --no-check-certificate然后把该文件移动到/usr/local/bin/并重命名 mv docker-compose-linux-x86_…...

【机器学习】--- 自监督学习

1. 引言 机器学习近年来的发展迅猛&#xff0c;许多领域都在不断产生新的突破。在监督学习和无监督学习之外&#xff0c;自监督学习&#xff08;Self-Supervised Learning, SSL&#xff09;作为一种新兴的学习范式&#xff0c;逐渐成为机器学习研究的热门话题之一。自监督学习…...

【Linux修行路】网络套接字编程——UDP

目录 ⛳️推荐 前言 六、Udp Server 端代码 6.1 socket——创建套接字 6.2 bind——将套接字与一个 IP 和端口号进行绑定 6.3 recvfrom——从服务器的套接字里读取数据 6.4 sendto——向指定套接字中发送数据 6.5 绑定 ip 和端口号时的注意事项 6.5.1 云服务器禁止直接…...

哈希表数据结构学习

哈希表数据结构学习 哈希表基本概念哈希方法单值哈希与多值哈希哈希冲突1. 开放寻址法&#xff08;Open Addressing&#xff09;2. 链地址法&#xff08;Chaining&#xff09;3. 再哈希法&#xff08;Rehashing&#xff09;4. 建立公共溢出区&#xff08;Overflow Area&#xf…...

数据结构——“二叉搜索树”

二叉搜索树是一个很重要的数据结构&#xff0c;它的特殊结构可以在很短的时间复杂度找到我们想要的数据。最坏情况下的时间复杂度是O(n)&#xff0c;最好是O(logn)。接下来看一看它的接口函数的实现。 为了使用方便&#xff0c;这里采用模版的方式&#xff1a; 一、节点 temp…...

Java零基础-Java对象详解

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云/阿里云/华为云/51CTO&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互…...

从Prompt到创造:解锁AI的无限潜能

文章目录 &#x1f34a;AI内容创作核心&#xff1a;提示词Prompt1 什么是提示词工程?1.1 提示词的原理是什么&#xff1f;1.2 提示词工程师&#xff1a;百万年薪的职业&#xff1f;1.3 谁都能成为提示词工程师吗&#xff1f; 2 提示词书写的基本技巧3 常见的提示词框架3.1 CO-…...

sqlgun靶场攻略

打开界面 1.输入框测试回显点 -1union select 1,2,3#出现回显点 2.查看数据库名 -1union select 1,2,database()# 3.查看表名 -1union select 1,2,group_concat(table_name) from information_schema.tables where table_schemasqlgunnews# 4.查看admin表中列名 -1union se…...

《网络协议 - HTTP传输协议及状态码解析》

文章目录 一、HTTP协议结构图二、HTTP状态码解读1xx: 信息响应类2xx: 成功响应类3xx: 重定向类4xx: 客户端错误类5xx: 服务器错误类 一、HTTP协议结构图 二、HTTP状态码解读 HTTP状态码&#xff08;英语&#xff1a;HTTP Status Code&#xff09;是用以表示网页服务器超文本传…...

9.11 QT ( Day 4)

一、作业 1.Widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> //定时器类 #include <QTime> #include <QtTextToSpeech> //文本转语音类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEcl…...

利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(四)

简介 随着生成式人工智能的兴起&#xff0c;传统的 BI 报表功能已经无法满足用户对于自动化和智能化的需求&#xff0c;今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器 – Quicksight&#xff0c;利用生成式AI的能力来加速业务决策&#xff0c;从而提高业务生产力。…...

2024.9最新:CUDA安装,pytorch库安装

目录 一、CUDA安装 1.查看自己电脑适配的CUDA的最高版本 2.安装CUDA 3.检查环境变量是否配置&#xff0c;安装是否成功 二、pytorch库安装 1.pytorch库下载 2.选择合适的版本 3.查看版本 一、CUDA安装 1.查看自己电脑适配的CUDA的最高版本 在命令提示符里输入nvidia-…...

Vue3.0组合式API:setup()函数

1、什么是组合式API Vue 3.0 中新增了组合式 API 的功能&#xff0c;它是一组附加的、基于函数的 API&#xff0c;可以更加灵活地组织组件代码。通过组合式 API 可以使用函数而不是声明选项的方式来编写 Vue 组件。因此&#xff0c;使用组合式 API 可以将组件代码编写为多个函…...

利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(三)

简介 随着生成式人工智能的兴起&#xff0c;传统的 BI 报表功能已经无法满足用户对于自动化和智能化的需求&#xff0c;今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器 – Quicksight&#xff0c;利用生成式AI的能力来加速业务决策&#xff0c;从而提高业务生产力。…...

GESP2025年3月认证C++三级( 第一部分选择题(1-8))

&#x1f3af; 第1题&#xff1a;Base64魔法箱&#x1f4dc; 题目核心&#xff1a; &#x1f449; 每 3个字节 → 变成4个字节1、&#x1f9e0; 故事理解有一个魔法机器&#xff1a;&#x1f449; 每放进去 3个苹果 &#x1f34e;&#x1f34e;&#x1f34e;&#xff08;不足3个…...

嵌入式图形原语抽象层:面向MCU的轻量绘图核心设计

1. Firmwork-Graphics-Core 模块深度解析&#xff1a;嵌入式图形子系统的设计哲学与工程实践Firmwork-Graphics-Core 是 Firmwork 嵌入式框架中可选的底层图形模块&#xff0c;其定位并非通用 GUI 库&#xff08;如 LVGL 或 emWin&#xff09;&#xff0c;而是一个面向资源受限…...

2026 codex 大模型 api 配置指南:auth.json、config.toml 与 401/超时排查

当 codex --version 已经能正常输出&#xff0c;很多人会以为接下来只剩下提问和改代码。但真正决定 Codex 能不能顺利进入项目的&#xff0c;往往是 codex 大模型 api 有没有按要求接好&#xff1a;只要 auth.json、config.toml 或网关地址有一点偏差&#xff0c;就可能马上碰…...

OpenClaw低代码开发:Qwen2.5-VL-7B自动化流程设计器入门

OpenClaw低代码开发&#xff1a;Qwen2.5-VL-7B自动化流程设计器入门 1. 为什么需要可视化流程设计器&#xff1f; 上周我尝试用OpenClaw自动处理一批产品截图和说明文档时&#xff0c;遇到了一个典型问题&#xff1a;需要先让Qwen2.5-VL-7B识别图片中的关键元素&#xff0c;再…...

嵌入式LED闪烁控制库Blinker工程实践指南

1. Blinker&#xff1a;嵌入式LED闪烁控制库的工程化实现解析Blinker并非一个广为人知的通用开源库&#xff0c;其项目摘要“Simple library for LED blinking”与关键词“blinking, led”表明这是一个高度聚焦、轻量级的底层驱动组件。在嵌入式系统开发中&#xff0c;“LED闪烁…...

Ubuntu20.04部署RTKLIB-QT:从源码编译到GUI应用实战

1. 为什么要在Ubuntu上部署RTKLIB-QT&#xff1f; 如果你正在处理GNSS&#xff08;全球导航卫星系统&#xff09;数据&#xff0c;比如GPS、GLONASS或北斗的观测数据&#xff0c;RTKLIB绝对是你工具箱里不可或缺的利器。这个开源软件包在Windows下有成熟的GUI版本&#xff0c;但…...

机械臂空间直线圆弧圆插补代码介绍

【机械臂空间直线&圆弧&圆插补】 代码主要功能: 1. 正逆运动学解析解&#xff1b; 2. 空间直线、圆弧以及圆插补&#xff1b; 3. 基于Slerp、Nlerp算法的机械臂末端两姿态插补算法&#xff1b; 4. 机械臂空间直线、圆弧以及圆插补。 购前须知: 1. 代码均为个人手写&…...

云端开发新选择:星图OpenClaw镜像+千问3.5-9B联调

云端开发新选择&#xff1a;星图OpenClaw镜像千问3.5-9B联调 1. 为什么选择云端联调方案&#xff1f; 去年尝试在MacBook Pro上本地部署OpenClaw时&#xff0c;风扇狂转的噪音让我意识到一个问题&#xff1a;个人设备跑大模型自动化框架的组合实在太吃资源。当时为了调试一个…...

基于Xilinx Artix-7的JPEG2000图像无损压缩系统:完整工程与独立模块化设计

JPEG2000 图像无损压缩算法 FPGA第三方IP JPEG2K是基于xilinx Artix-7的FPGA完整工程&#xff0c;内有完整的MATLB算法工程和RTL源代码&#xff0c;还有详细的文档 JPEG2000压缩系统部分由6个独立模块组成&#xff1a;去马赛克模块、伽马校正模块、分量间变换模块、小波变换模…...

Matlab vs Python:灰色关联分析(GRA)可视化效果大比拼

Matlab vs Python&#xff1a;灰色关联分析可视化效果与实现深度对比 在数据科学领域&#xff0c;灰色关联分析(Grey Relational Analysis, GRA)作为一种强大的小样本数据分析工具&#xff0c;正逐渐受到研究者和实践者的青睐。面对两种主流编程语言Matlab和Python&#xff0c;…...