RabbitMQ 最新版安装 (Linux环境)
启动rabbitmq
队列是空的
数据库表是无数据的
启动nacos
应用集成rabbitMQ
父工程导入依赖
<!-- 消息队列通用依赖 -->
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
</dependency>
子工程配置(以订单应用为例)
server:
port: 8000
spring:
application:
name: order-serv
cloud:
nacos:
discovery:
service: order-serv
server-addr: nacos.server.com:8848
zipkin:
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 # 服务器 IP
port: 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数据库中