天天看點

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