天天看点

Zipkin 基于MQ存 储链路信息至 MySQL

RabbitMQ 最新版安装 (Linux环境)

启动rabbitmq

Zipkin 基于MQ存 储链路信息至 MySQL

队列是空的

Zipkin 基于MQ存 储链路信息至 MySQL

数据库表是无数据的

Zipkin 基于MQ存 储链路信息至 MySQL

启动nacos

Zipkin 基于MQ存 储链路信息至 MySQL

应用集成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%)      

启动应用

Zipkin 基于MQ存 储链路信息至 MySQL

​​http://localhost/order/order/create?productId=22&userId=11​​

Zipkin 基于MQ存 储链路信息至 MySQL

检查队列消息

现在访问服务,将链路追踪的消息已经推送到了mq 队列上

Zipkin 基于MQ存 储链路信息至 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      

消息队列消息

Zipkin 基于MQ存 储链路信息至 MySQL

mq队列消息已经被zipkin-server服务端消费了,队列中的消息没了

Zipkin 基于MQ存 储链路信息至 MySQL

​​http://192.168.159.102:9411/zipkin/​​

Zipkin 基于MQ存 储链路信息至 MySQL
Zipkin 基于MQ存 储链路信息至 MySQL
Zipkin 基于MQ存 储链路信息至 MySQL

zipkin已经将链路消息持久化到了mysql数据库中

Zipkin 基于MQ存 储链路信息至 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      
Zipkin 基于MQ存 储链路信息至 MySQL

重新查看链路消息是否已经持久化道mysql数据库中

Zipkin 基于MQ存 储链路信息至 MySQL