1. 程式人生 > >微服務整合Zipkiin+Sleuth時遇到的坑

微服務整合Zipkiin+Sleuth時遇到的坑

在微服務中整合Zipkin+Sleuth的時候,出現了一個很大的問題:

        配置檔案如下:(springCloud:Finchley.SR1
spring:

  application:

    name: mall-order-server-8080

  cloud:

    config:

      discovery:

        enabled: true

        service-id: config-server-9003

      profile: dev

    sleuth:

      web:

        client:

          enabled: 
true       trace-id128: true       sampler:         probability: 1.0     zipkin:       baseUrl: http://192.168.72.103:9411/ eureka:   client:     service-url:       defaultZone: http://localhost:7001/eureka/   #本地版 #      defaultZone: http://eureka:7001/eureka/   #部署版   instance:     instance-id: 
mall-order-server-8080     prefer-ip-address: true logging:   level:     org.springframework.web:  debug     org.springframework.cloud.openfeign:  debug

          整合後項目全部都執行正常,並且日誌也列印,而且日誌也推送到了zipkin中(日誌顯示為true),但是zipkin中一個請求的日誌也不顯示

後來看了官網的文件發現了問題:

需要加上這個配置才可以顯示

spring:

  application:

    name: 
mall-order-server-8080   cloud:     config:       discovery:         enabled: true         service-id: config-server-9003       profile: dev     sleuth:       web:         client:           enabled: true       trace-id128: true       sampler:         probability: 1.0     zipkin:       sender:    #使用Finchley.SR1         type: web       baseUrl: http://192.168.72.103:9411/ eureka:   client:     service-url:       defaultZone: http://localhost:7001/eureka/   #本地版 #      defaultZone: http://eureka:7001/eureka/   #部署版   instance:     instance-id:  mall-order-server-8080     prefer-ip-address: true logging:   level:     org.springframework.web:  debug     org.springframework.cloud.openfeign:  debug

為什麼呢?

         若你的專案中沒有引入 spring-rabbitmq這個依賴,則不需要加入這個配置。但是由於我的專案中使用了rabbitmq,並且我加入了springboot-starter-amqp依賴,那麼這個依賴會將

Spring-rabbitmq這個依賴引進來。所以zipkin就不知道將日誌通過web還是rabbimq傳送了。

這時候就需要配置  zipkin.sender.typr=web

但是當我們加上這個配置後,依然不能發現日誌

         這是怎麼回事呢?

                   原理是因為我的專案zipkin處理日誌時,並沒有將日誌持久化。Zipkin預設有有一個過期時間,只能收集一定時間段日誌,任何會將以前的覆蓋。最後找到了問題:

                   原來是我的虛擬機器時間與主機時間不一致導致的,相差1天的時間。所以zipkin中自然看不到請求日誌。將虛擬機器的時間與主機同步後,zipkin恢復了正常。