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

Docker下快速搭建RabbitMQ单例及集群

 

引子
生命在于折腾,为上数据实时化用到了消息传送的内容,当时也和总公司人员商量选型,kafka不能区分分公司就暂定用了RbtMQ
刚好个人也在研究容器及分布式部署相关内容就在docker上实践

单机 docker(要想快 先看问题 避免踩坑)

启动web控制台
启用RabbitMQ Web管理控制台,方法是运行:
rabbitmq-plugins enable rabbitmq_management

添加用户及赋权 
rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin “.*” “.*” “.*”

角色定义

 

要访问RabbitMQ的管理面板,请使用您最喜爱的Web浏览器并打开以下URL
http://Your_Server_IP:15672/
基本上用官方发布的镜像直接拉过来 就能用了

遇到的问题

1 进不去管理端 
docker pull rabbitmq
但是建议在docker pull的时候可以选择带上management,可以省事一点 
docker pull rabbitmq:management
此处最好修改host 将主控的docker容器ID在此填写 --add-host[单机docker暂时用不上]
docker run -di --name=rbtmq-mst -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 rabbitmq:management
# tmp 集群时要用到 
-e RABBITMQ_ERLANG_COOKIE='rabbitcookie'
--link rabbitmq1:rabbit1

docker ps
docker exec -it 镜像ID /bin/bash
rabbitmq-plugins enable rabbitmq_management
2  Stats in management UI are disabled on this node
即打开统计开关
#进入rabbitmq容器
docker exec -it {rabbitmq容器名称或者id} /bin/bash
#进入容器后,cd到以下路径
cd /etc/rabbitmq/conf.d/
#修改 management_agent.disable_metrics_collector = false
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
#退出容器
exit
#重启rabbitmq容器
docker restart {rabbitmq容器id或容器名称}

关于cluster集群

docker run -di --hostname  rbtmq_mst  --name rbtmq_mst -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:management
docker run -di --hostname  rbtmq_slv1  --name rbtmq_slv1 -p 5871:5671 -p 5872:5672 -p 4569:4369 -p 17671:15671 -p 17672:15672 -p 27672:25672 --link rbtmq_mst:rbtmq_mst -e RABBITMQ_ERLANG_COOKIE='rabbitcookie'  rabbitmq:management
docker run -di --hostname  rbtmq_slv2  --name rbtmq_slv2 -p 5971:5671 -p 5972:5672 -p 4769:4369 -p 19671:15671 -p 19672:15672 -p 29672:25672 --link rbtmq_mst:rbtmq_mst   --link rbtmq_slv1:rbtmq_slv1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:management
RABBITMQ_ERLANG_COOKIE env variable support is deprecated and will be REMOVED in a future version. Use the $HOME/.erlang.cookie file or the --erlang-cookie switch instead.
参数过时 ,以下覆盖方法待测试解决
docker cp rbtmq_mst:/var/lib/rabbitmq d:\tmp\
docker cp d:\tmp\rabbitmq\.erlang.cookie rbtmq_slv2:/var/lib/rabbitmq/
chmod 600 /var/lib/rabbitmq/.erlang.cookie
上述建完之后 需要重新刷新app,
docker exec -it rbtmq_slv1 bash
并将从机加入到集群中
root@rbtmq_slv1:/# rabbitmqctl stop_app
root@rbtmq_slv1:/# rabbitmqctl reset
root@rbtmq_slv1:/# rabbitmqctl join_cluster --ram rabbit@rbtmq_mst
Clustering node rabbit@rbtmq_slv1 with rabbit@rbtmq_mst
root@rbtmq_slv1:/# rabbitmqctl start_app
Starting node rabbit@rbtmq_slv1 ...

 

--ram 和--disc区别
RabbitMQ对于queue中的message的保存方式有两种方式:disc和ram。
如果采用disc,则需要对exchange/queue/delivery mode都要设置成durable模式。
Disc方式的好处是当RabbitMQ失效了,message仍然可以在重启之后恢复。
使用ram方式,RabbitMQ处理message的效率要高很多,ram和disc两种方式的效率比大概是3:1。所以如果在有其它HA手段保障的情况下,选用ram方式是可以提高消息队列的工作效率的。
如果使用ram方式,RabbitMQ能够承载的访问量则取决于可用的内存数了。
RabbitMQ使用两个参数来限制使用系统的内存,避免系统被自己独占。
作者:Bogon
链接:https://www.jianshu.com/p/6df48edda72e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

测试用例[用PY唯快,无他尔]

发消息

    # This is a sample Python script.
import pika
# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
def print_hi(name):# Use a breakpoint in the code line below to debug your script.print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.
# Press the green button in the gutter to run the script.
if __name__ == '__main__':print_hi('PyCharm')connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
for i in range (9999999,0,-1):channel.basic_publish(exchange='',routing_key='hello',body='helllllllo '+str(i))print("[x] send message")
# See PyCharm help at https://www.jetbrains.com/help/pycharm/

消费消息


import pikaconnection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
def callback(ch,method,properties,body):print("[x] Rev %r" % body)channel.basic_consume(queue='hello',auto_ack=True,on_message_callback=callback)print('[*] Waiting for MSG. Exit by Ctrl+C')channel.start_consuming()

 

 

相关文章:

Docker下快速搭建RabbitMQ单例及集群

引子生命在于折腾,为上数据实时化用到了消息传送的内容,当时也和总公司人员商量选型,kafka不能区分分公司就暂定用了RbtMQ刚好个人也在研究容器及分布式部署相关内容就在docker上实践单机 docker(要想快 先看问题 避免踩坑&#x…...

python代码写开心消消乐

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易,人间真情 目录 一.python是什么 二.游戏代码效果呈现 三.主代...

【郭东白架构课 模块一:生存法则】09|法则四:为什么要顺应技术的生命周期?

你好,我是郭东白。今天我们来讲架构师的第四条生存法则,那就是尊重技术的生命周期。 人类的各种活动都要遵循事物的客观生命周期。不论是农业社会种田打渔,还是资本社会投资创业,行动太早或太晚,都会颗粒无收。技术也…...

Linux之进程控制

一.进程创建 1.1 fork函数 我们创建进程的方式有./xxx和fork()两种 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程。 #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程…...

SpringBoot社区版专业版带你配置热部署

&#x1f49f;&#x1f49f;前言 ​ 友友们大家好&#xff0c;我是你们的小王同学&#x1f617;&#x1f617; 今天给大家打来的是 SpringBoot社区版专业版带你配置热部署 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞&#x1f44d; 收藏⭐ 评论&#x1…...

影响AFE采样精度的因素有哪些?

**AFE&#xff08;Analog Front End&#xff09;**是模拟前端电路的缩写&#xff0c;它是模拟信号传感器和数字信号处理器之间的连接点。AFE采样精度是指模拟信号被数字化后的准确度&#xff0c;对于很多电子设备来说&#xff0c;这是一个至关重要的性能指标。本文将介绍影响AF…...

mysqlbackup备份报error:redo log was overwritten

问题原因 备份时redo log被覆盖 解决方案 方法1&#xff1a;增加innodb_log_file_size、innodb_log_files_in_group大小&#xff0c;需要重启数据库 vi my.cnf innodb_log_file_size 2G innodb_log_files_in_group 4 方法2: 动态配置redo log archive&#xff0c;不需要重启…...

Android支持库

# 支持库 注意:Android 9.0(API 级别 28)发布后,新版支持库 AndroidX 也随之诞生,它属于 Jetpack。除了现有的支持库,AndroidX 库还包含最新的 Jetpack 组件。 您可以继续使用此支持库以往的工件(这里指的是版本 27 及更早版本,且已打包为 android.support.*)在 Googl…...

Vue:filters过滤器

日期、时间格式化是Vue前端项目中较为常遇到的一个需求点&#xff0c;此处&#xff0c;围绕Vue的过滤器来介绍如何更为优雅的解决此类需求。 过滤器filters使用注意点 Vue允许开发者自定义过滤器&#xff0c;可以实现一些常见的文本格式化等需求。 使用时要注意的点在于&#…...

Windows环境下安装和配置Gradle

1. 概述 Gradle是Google公司基于JVM开发的一款项目构建工具&#xff0c;支持Maven&#xff0c;JCenter多种第三方仓库&#xff0c;支持传递性依赖管理&#xff0c;使用更加简洁和支持多种语言的build脚步文件&#xff0c;更多详情可以参阅Gradle官网 2. 下载 由于Gradle与S…...

数据结构时间空间复杂度笔记

&#x1f57a;作者&#xff1a; 迷茫的启明星 本篇内容&#xff1a;数据结构时间空间复杂度笔记 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;家人们&#xff0c;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤…...

基于注意力的知识蒸馏Attention Transfer原理与代码解析

paper&#xff1a;Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfercode&#xff1a;https://github.com/megvii-research/mdistiller/blob/master/mdistiller/distillers/AT.py背景一个流行的假设是存…...

利尔达在北交所上市:总市值突破29亿元,叶文光为董事长

2月17日&#xff0c;利尔达科技集团股份有限公司&#xff08;下称“利尔达”&#xff0c;BJ:832149&#xff09;在北京证券交易所上市。本次上市&#xff0c;利尔达的发行价格为5.00元/股&#xff0c;发行数量为1980万股&#xff0c;发行市盈率为12.29倍&#xff0c;募资总额为…...

C#操作字符串方法 [万余字总结 · 详细]

C#操作字符串方法总结C#常用字符串函数大全C#常用字符串操作方法C#操作字符串方法总结C#常用字符串函数大全 Compare 比较字符串的内容&#xff0c;考虑文化背景(场所)&#xff0c;确定某些字符是否相等 CompareOrdinal 与Compare一样&#xff0c;但不考虑文化背景 Format 格…...

极兔一面:10亿级ES海量搜索狂飙10倍,该怎么办?

背景说明&#xff1a; ES高性能全文索引&#xff0c;如果不会用&#xff0c;或者没有用过&#xff0c;在面试中&#xff0c;会非常吃亏。 所以ES的实操和底层原理&#xff0c;大家要好好准备。 另外&#xff0c;ES调优是一个非常、非常核心的面试知识点&#xff0c;大家要非…...

【Mysql基础 —— SQL语句(一)】

文章目录概述使用启动/停止mysql服务连接mysql客户端数据模型SQLSQL语句分类DDL数据库操作表操作查询创建数据类型修改删除DML添加数据修改数据删除数据DQL基础查询条件查询聚合函数分组查询排序查询分页查询执行顺序DCL管理用户权限控制概述 数据库&#xff08;Database&#…...

华为OD机试 - 新员工座位安排系统(Python) | 机试题算法思路

最近更新的博客 华为OD机试 - 招聘(Python) | 备考思路,刷题要点,答疑 【新解法】华为OD机试 - 五键键盘 | 备考思路,刷题要点,答疑 【新解法】华为OD机试 - 热点网络统计 | 备考思路,刷题要点,答疑 【新解法】华为OD机试 - 路灯照明 | 备考思路,刷题要点,答疑 【新解…...

MySQL - 介绍

前言 本篇介绍认识MySQL&#xff0c;重装mysql操作 如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 本文开始 1.什么是数据库? 数据库: 一种通过SQL语言操作管理数据的软件; 重装数据库的卸载数据库步骤 : ① 停止MySQL服…...

ChatGPT国内镜像站初体验:聊天、Python代码生成等

ChatGPT国内镜像站初体验&#xff0c;聊天、Python代码生成。 (本文获得CSDN质量评分【92】)【学习的细节是欢悦的历程】Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单………...

SAP数据导入工具(LSMW) 超级详细教程(批量导入内部订单)

目录 第一步&#xff1a;记录批导步骤编辑数据源对应字段 第二步&#xff1a;维护数据源 第三步&#xff1a;维护数据源对应字段&#xff08;重要&#xff09; 第四步&#xff1a;维护数据源关系。 第五步&#xff1a;维护数据源与导入字段的对应关系。 第六步&#xff0…...

第9天-商品服务(电商核心概念,属性分组开发及分类和品牌的级联更新)

1.电商核心概念 1.1.SPU与SKU SPU&#xff1a;Standard Product Unit&#xff08;标准化产品单元&#xff09; 是商品信息聚合的最小单位&#xff0c;是一组可复用、易检索的标准化信息的集合&#xff0c;该集合描述了一个 产品的特性。 决定商品属性的值 SKU&#xff1a;Stock…...

动漫人物眼睛画法

本期的动漫绘画课程教大家来学习动漫人物眼睛画法&#xff0c;结合板绘软件从草稿开始一步步教你画出动漫人物眼睛&#xff0c;不用报动漫培训班也能学会&#xff0c;快来跟着本期的动漫人物眼睛画法教程试试吧&#xff01; 动漫人物眼睛画法步骤教程&#xff1a; 注意&#x…...

张晨光-JAVA零基础保姆式JDBC技术教程

JDBC文档 JDBC概述 JDBC概述 Java DataBase Connectivity Java 数据库连接技术 JDBC的作用 通过Java语言操作数据库&#xff0c;操作表中的数据 SUN公司为**了简化、**统一对数据库的操作&#xff0c;定义了一套Java操作数据库的规范&#xff0c;称之为JDBC JDBC的本质 是官方…...

华为OD机试 - 最多提取子串数目(Python)

最多提取子串数目 题目 给定由 [a-z] 26 个英文小写字母组成的字符串 A 和 B,其中 A 中可能存在重复字母,B 中不会存在重复字母 现从字符串 A 中按规则挑选一些字母,可以组成字符串 B。 挑选规则如下: 1) 同一个位置的字母只能被挑选一次 2) 被挑选字母的相对先后顺序不…...

LeetCode-1237. 找出给定方程的正整数解【双指针,二分查找】

LeetCode-1237. 找出给定方程的正整数解【双指针&#xff0c;二分查找】题目描述&#xff1a;解题思路一&#xff1a;双指针。首先我们不管f是什么&#xff0c;即function_id等于什么不管。但是我们可以调用customfunction中的f函数&#xff0c;然后我们遍历x,y(1 < x, y &l…...

广度优先搜索算法 - 迷宫找路

广度优先搜索算法1 思考问题1.1 这个迷宫需不需要指定入口和出口&#xff1f;2 先粗略实现2.1 源码2.2 源码解释3 优化代码3.1 优化读取文件部分3.2 增加错误处理4 再优化-让程序变得更加灵活4.1 用户外部可以循环输入入口和出口5 完整代码这是一个提问者的提出的问题&#xff…...

泡脚材料简记

文章目录一般条件中药包&#xff08;药粉&#xff09;泡脚丸中药包&#xff08;药材&#xff09;艾叶生姜益母草藏红花食盐花椒白醋柠檬藿香泡脚私方紫苏叶、白术、白芍、黄芪、青皮、柴胡、夜交藤、丹参、当归&#xff0c;每种各10g艾叶、花椒、肉桂、桂枝、红花干姜30克、小茴…...

【计算机网络】因特网概述

文章目录因特网概述网络、互联网和因特网互联网历史与ISP标准化与RFC因特网的组成三种交换方式电路交换分组交换和报文交换三种交换方式的对比与总结计算机网络的定义和分类计算机网络的定义计算机网络的分类计算机网络的性能指标速率带宽吞吐量时延时延带宽积往返时间利用率丢…...

STC单片机 VS/HX1838红外接收和发送实验

STC单片机 VS/HX1838红外接收和发送实验 📌相关篇《STC单片机获取红外解码从串口输出》🔨所使用的红外接收头VS1838 📋VS1838引脚定义🌿5MM发射头,940nm红外发射二极管 红外遥控发射头。(外观看起来和普通的发光二极管没有什么差异,购买时需要注意确认)。 🔰采用的…...

前端开发常用案例(一)

前端开发常用案例1.实现三角形百度热榜样式分页效果小米商城自动轮播图效果二级下拉菜单效果时间轴效果展示音乐排行榜效果鼠标移入文字加载动画鼠标悬停缩放效果1.实现三角形 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8…...

企业网站建设原则/百度权重是怎么来的

前言面试官&#xff1a;看你写 有参与过数据清洗ETL之类的工作&#xff1f; 讲讲你这个项目中数据质量是怎么做的 &#xff1a;啥数据质量&#xff1f; GG 概念 数据质量是一种通过测量和改善数据综合特征来优化数据价值的过程。是通过数据收集 、数据识别&#xff0f;匹配…...

做app模板下载网站/seo查询百科

定义和用法 <audio> 标签定义声音&#xff0c;比如音乐或其他音频流。 示例代码:<audio src"someaudio.wav">您的浏览器不支持 audio 标签。</audio> 提示和注释 提示&#xff1a;可以在开始标签和结束标签之间放置文本内容&#xff0c;这样老的浏…...

做网站的研究生专业/windows优化大师官方

1、TinyMCE下载 官方下载网址&#xff1a;http://www.tinymce.com/ 简体中文语言包下载&#xff1a;http://www.tinymce.com/i18n/index.php?ctrllang&actdownload&pr_id1 2、下载包中示例 代码&#xff1a; <!DOCTYPE html> <html> <head><titl…...

山东省住房城乡建设厅查询网站/企业管理系统

新建 ctrl n格式化 ctrlshiftf导入包 ctrlshifto 注释 ctrl/,ctrlshift/,ctrlshift\代码上下移动 选中代码alt上/下箭头查看源码 选中类名(F3或者Ctrl鼠标点击)查找具体的类 ctrl shift t查找具体类的具体方法 ctrl o给建议 ctrl1,根据右边生成左边的数据类型,生成方法删除…...

网络工程就业前景分析/seo站长综合查询

有时候&#xff0c;去便利店买几块钱的东西&#xff0c;但没有零钱&#xff0c;只能给他们一张100的&#xff0c;他们可能找给我一沓10块的和几枚硬币。我不喜欢这么多的零钱&#xff0c;要知道&#xff0c;钱越零散&#xff0c;散失地就越快&#xff0c;我希望找给我的零钱张数…...

ie显示wordpress网页靠左/网络营销ppt课件

Linux上配置一个服务器环境&#xff0c;看了一下jdk的版本只有1.4&#xff0c;要换成1.6的&#xff0c;所以安装之前先得把jdk换成1.6的。一、Linux版本&#xff1a;redhat1、查看jdk的版本&#xff1a;输入命令&#xff1a;java –version返回&#xff1a;java version "…...