微服務整合Zipkiin+Sleuth時遇到的坑
阿新 • • 發佈:2018-12-16
在微服務中整合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: |
整合後項目全部都執行正常,並且日誌也列印,而且日誌也推送到了zipkin中(日誌顯示為true),但是zipkin中一個請求的日誌也不顯示
後來看了官網的文件發現了問題:
需要加上這個配置才可以顯示
spring: application: name: |
為什麼呢?
若你的專案中沒有引入 spring-rabbitmq這個依賴,則不需要加入這個配置。但是由於我的專案中使用了rabbitmq,並且我加入了springboot-starter-amqp依賴,那麼這個依賴會將
Spring-rabbitmq這個依賴引進來。所以zipkin就不知道將日誌通過web還是rabbimq傳送了。
這時候就需要配置 zipkin.sender.typr=web
但是當我們加上這個配置後,依然不能發現日誌
這是怎麼回事呢?
原理是因為我的專案zipkin處理日誌時,並沒有將日誌持久化。Zipkin預設有有一個過期時間,只能收集一定時間段日誌,任何會將以前的覆蓋。最後找到了問題:
原來是我的虛擬機器時間與主機時間不一致導致的,相差1天的時間。所以zipkin中自然看不到請求日誌。將虛擬機器的時間與主機同步後,zipkin恢復了正常。