【day06】

时间:2025-01-23 10:04:32

day06

    • Rabbitmq
      • Docker运行Rabbitmq服务:
    • 工作模式合理分发消息:
    • 防止服务器崩溃,消息丢失:
    • 常见的面试题:rabbitmq防止消息丢失:
    • Spring cloud config + BUS 配置刷新
    • Sleuth + Zipkin 链路跟踪

Rabbitmq

Docker运行Rabbitmq服务:

克隆 docker base: rabbitmq
设置固定ip:
./ip-static
ip: 192.168.64.140
ifconfig
#如果设置ip出错,参考上面 ip 设置,执行两条命令
上传文件到 /root/
DevOps课前资料\docker\
导入镜像:
docker load -i
docker images
参考 **** 笔记启动 rabbitmq
RabbitMQ
Docker运行rabbitmq

工作模式合理分发消息:

使用手动确认模式 消息分发不合理的原因,是服务器不知道消费者有没有处理完消息。 使用手动确认模式,不仅是保证消息被正确处理,也可以让服务器知道消费者有没有处理完消息。
qos=1 每次只接收1条消息,处理完成之前不接收下一条。 只在手动确认模式才有效。

防止服务器崩溃,消息丢失:

消息的持久化:
队列设置成持久队列
发送的消息设置成持久消息

常见的面试题:rabbitmq防止消息丢失:

手动确认模式 保证消息被正确处理,不丢失消息
消息的持久化 防止服务器崩溃丢失消息
消息服务使用案例
BUS 配置刷新 通过Rabbitmq发送刷新指令到各个模块,各个模块接收到指令后执行刷新操作 使用Rabbitmq的主题模式

Spring cloud config + BUS 配置刷新

修改 2,3,4,9
添加依赖:
bus
rabbitmq
binder-rabbit
在 09 中添加 actuator 依赖
yml 配置添加 rabbitmq 连接配置
修改 09 的
修改 config 目录的三个配置文件,提交推送到远程仓库
修改 09 的 yml 配置,暴露 bus-refresh 刷新路径
=bus-refresh
测试:
GET http://localhost:6001/actuator
查看确认,是否已经暴露 bus-refresh 刷新路径
POST http://localhost:6001/actuator/bus-refresh
观察 2,3,4 的控制台,有没有执行刷新操作

Sleuth + Zipkin 链路跟踪

Sleuth
产生链路跟踪日志的工具
添加 Sleuth 只需要添加它的依赖,0配置
A --> B --> C --> D
日志数据:
A, 87J6H5GF34F, 87J6H5GF34F, true
B, 87J6H5GF34F, OI67U545Y43, true
C, 87J6H5GF34F, U45Y46U56Y3, true
D, 87J6H5GF34F, U545T234264, true
修改 2,3,4,6,添加 sleuth 依赖
链路跟踪日志发送到 rabbitmq:
修改2,3,4,6添加依赖: zipkin client
单独修改 6,添加 rabbitmq
rabbitmq依赖
rabbitmq连接配置
yml配置发送方式: =rabbit
06修改
2,3,4修改 config 目录的三个文件,再提交推送
启动 zipkin 服务:
在磁盘找到 zipkin 的 jar 文件,地址栏输入 cmd 启动命令行,执行启动命令:
#旧版本
java -jar zipkin-server-2.12. --=amqp://admin:admin@192.168.64.140:5672
#新版本
java -jar zipkin-server-2.23. --=amqp://admin:admin@192.168.64.140:5672