RabbitMQ 最新版安装 (Linux环境)
https://gblfy.blog.csdn.net/article/details/120498390
启动rabbitmq
队列是空的
数据库表是无数据的
启动nacos
应用集成rabbitMQ
父工程导入依赖
<!-- 消息队列通用依赖 --><dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit</artifactId></dependency>
子工程配置(以订单应用为例)
server:port: 8000
spring:application:name: order-servcloud:nacos:discovery:service: order-servserver-addr: nacos.server.com:8848zipkin:base-url: http://zipkin.server.com:9411/ # 服务端地址discoveryClientEnabled: false # 解决nacos集成zipkin报错sender:# type: web # 数据传输方式,web 表示以 HTTP 报文的形式向服务端发送数据type: rabbit # 数据传输方式,web 表示以 MQ报文的形式向服务端发送数据rabbitmq:queue: zipkin # 队列名称rabbitmq:host: rabbit.server.com # 服务器 IPport: 5672 # 服务器端口username: guest # 用户名password: guest # 密码listener:direct:retry:enabled: true # 是否开启发布重试max-attempts: 5 # 最大重试次数initial-interval: 5000 # 重试间隔时间(单位毫秒)simple:retry:enabled: true # 是否开启消费者重试max-attempts: 5 # 最大重试次数initial-interval: 5000 # 重试间隔时间(单位毫秒)sleuth:sampler:probability: 1.0 # 收集数据百分比,默认 0.1(10%)
启动应用
http://localhost/order/order/create?productId=22&userId=11
检查队列消息
现在访问服务,将链路追踪的消息已经推送到了mq 队列上
启动zipkin服务端
java -jar zipkin-server-2.23.4-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=192.168.43.122 --MYSQL_TCP_PORT=3306 --MYSQL_USER=root --SQL_PASS=123456 --MYSQL_DB=zipkin --RABBIT_ADDRESSES=localhost --RABBIT_USER=guest --RABBIT_PASSWORD=guest --RABBIT_VIRTUAL_HOST=/ --RABBIT_QUEUE=zipkin
消息队列消息
mq队列消息已经被zipkin-server服务端消费了,队列中的消息没了
http://192.168.159.102:9411/zipkin/
zipkin已经将链路消息持久化到了mysql数据库中
重新启动zipkin
java -jar zipkin-server-2.23.4-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=192.168.43.122 --MYSQL_TCP_PORT=3306 --MYSQL_USER=root --SQL_PASS=123456 --MYSQL_DB=zipkin --RABBIT_ADDRESSES=localhost --RABBIT_USER=guest --RABBIT_PASSWORD=guest --RABBIT_VIRTUAL_HOST=/ --RABBIT_QUEUE=zipkin
重新查看链路消息是否已经持久化道mysql数据库中