RabbitMQ实战:运行和管理RabbitMQ
消息来源:baojiabao.com 作者: 发布时间:2024-05-15
通过介绍,你会了解到:
消息发送和接收简单实现
服务器管理-启动和停止节点
许可权配置
使用统计
消息发送和接收简单实现
该Demo主要用于收集日志,消息发送者是各个应用子系统,消息接收者是日志收集服务,使用RabbitMQ可以很容易实现。
基于Spring Boot框架实现,主要类的作用如下:
LogRabbitConfig:创建队列、交换器、绑定等初始化操作;
Sender:消息发送者;
AllReceiver:所有级别日志接收者,接收所有级别的日志;
ErrorReceiver:错误级别日志接受者,只接收错误级别的日志;
LogSenderTest:测试用例类;
消息模型如下:
配置
首先,配置spring boot和rabbitmq依赖:
然后在application.properties文件中配置rabbitmq地址:
LogRabbitConfig实现
使用Spring的@Configuration定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,用于构建bean定义,初始化Spring容器。
Sender实现
各个子系统向rabbitmq服务器发送消息:
AllReceiver和ErrorReceiver实现
从rabbitmq服务器接收消息。
AllReceiver从服务器的log.all队列获取消息,因为它绑定的routingkey为"log.#",所以,会收到所有级别的日志:
ErrorReceiver从服务器的log.error队列获取消息,因为它绑定的routingkey为"log.error",所以,只会收到error级别的日志:
LogSenderTest测试
测试用例很简单,就是调用Sender发送消息,观察消息的接收情况。
运行日志如下:
可以看到,error收到了2次,说明exchange同时分发给了log.all和log.error队列,其他级别的日志分发给了log.all队列。
服务器管理-启动和停止节点
RabbitMQ是用Erlang编写的,Erlang天生就能让应用程序无需知道对方是否在同一台机器上即可相互通信,这让集群和可靠的消息路由变得简单。
理解节点和Erlang应用程序
和Java有JVM虚拟机类似,Erlang也有虚拟机,虚拟机的每个实例称之为“节点”,不同的是,多个Erlang应用程序可以运行在同一个节点之上,如果应用程序崩溃了,Erlang节点会自动尝试自动重启应用程序。
节点的操作:
后台启动节点:./rabbitmq-server -detache
停止节点:./rabbitmqctl stop
仅停止rabbit应用程序:./rabbitmqctl stop_app
配置文件
配置文件的格式本质上是原始的Erlang数据结构,是一个包含了嵌套哈希表的数组,如下:
上面配置了2个应用,每个应用会有自己的哈希表来配置选项:
mnesia:是rabbitmq用来存储交换器和队列元数据的;
rabbit:是rabbitmq特定的配置选项;
每个应用如果有多个选项,用逗号隔开。
RabbitMQ许可权系统中,单个用户可以跨越多个vhost进行授权,而且可以对读、写、配置分别授权。
首先创建一个用户dongqingqing,密码为123456:
授予dongqingqing用户许可权,可以读取所有队列和交换器,只可写log.*格式的队列和交换器,无法创建或删除队列和交换器
set_permissions 后面的参数分别为用户名、读许可权、写许可权、配置许可权。
其他详细用法可查看文档。
使用统计
查看数据统计
可通过rabbitmqctl命令查看数据统计信息,比如队列和消息数目、交换器和绑定等。
查看所有队列,包含上面demo定义的log.all和log.error:
查看所有交换器,包含上面demo定义的log
另外,rabbitmq提供了管理界面插件,更方便的查看各种统计,可以通过下面的命令开启:
查看日志
可以在文件系统中查看日志,启动rabbitmq后,会显示日志的路径:
另外,可以通过AMQP获取实时日志信息,有一个amq.rabbitmq.log的topic交换器,监听对应的队列即可。
相关文章
- 中兴受美国制裁事件 被罚了20亿美元过程事件始末 中兴被制裁后公司现状
2023-11-02 22:12:46
- B站怎么炸崩了哔哩哔哩服务器今日怎么又炸挂了?技术团队公开早先原因
2023-03-06 19:05:55
- 苹果iPhoneXS/XR手机电池容量续航最强?答案揭晓
2023-02-19 15:09:54
- 华为荣耀两款机型起内讧:荣耀Play官方价格同价同配该如何选?
2023-02-17 23:21:27
- google谷歌原生系统Pixel3 XL/4/5/6 pro手机价格:刘海屏设计顶配版曾卖6900元
2023-02-17 18:58:09
- 科大讯飞同传同声翻译软件造假 浮夸不能只罚酒三杯
2023-02-17 18:46:15
- 华为mate20pro系列手机首发上市日期价格,屏幕和电池参数配置对比
2023-02-17 18:42:49
- 小米MAX4手机上市日期首发价格 骁龙720打造大屏标准
2023-02-17 18:37:22
- 武汉弘芯遣散!结局是总投资1280亿项目烂尾 光刻机抵押换钱
2023-02-16 15:53:18
- 谷歌GoogleDrive网云盘下载改名“GoogleOne” 容量提升价格优惠
2023-02-16 13:34:45
- 巴斯夫将裁员6000人 众化工巨头裁员潮再度引发关注
2023-02-13 16:49:06
- 人手不足 韵达快递客服回应大量包裹派送异常没有收到
2023-02-07 15:25:20
- 资本微念与李子柒销声匿迹谁赢? 微念公司退出子柒文化股东
2023-02-02 09:24:38
- 三星GalaxyS8 S9 S10系统恢复出厂设置一直卡在正在检查更新怎么办
2023-01-24 10:10:02
- 华为Mate50 RS保时捷最新款顶级手机2022多少钱?1.2万元售价外观图片吊打iPhone14
2023-01-06 20:27:09
- 芯片常见的CPU芯片封装方式 QFP和QFN封装的区别?
2022-12-02 17:25:17
- 华为暂缓招聘停止社招了吗?官方回应来了
2022-11-19 11:53:50
- 热血江湖手游:长枪铁甲 刚猛热血 正派枪客全攻略技能介绍大全
2022-11-16 16:59:09
- 东京把玩了尼康微单相机Z7 尼康Z7现在卖多少钱?
2022-10-22 15:21:55
- 苹果iPhone手机灵动岛大热:安卓灵动岛App应用下载安装量超100万次
2022-10-03 22:13:45