前文搭建的Zipkin Server是沒有後端存儲的——數據會存儲在Zipkin的內存中。這一般不適合生產,本節來探討如何將Zipkin中的數據持久化。
Zipkin支持多種存儲:
- 內存(默認)
- MySQL(數據量大時,查詢較為緩慢,不建議使用)
- Elasticsearch
- Cassandra(Twitter官方使用Cassandra作為Zipkin Server的存儲,但國內大規模用Cassandra的公司較少,Cassandra相關文檔也不多)
綜上,個人建議使用Elasticsearch作為Zipkin Server的存儲。
OK,話不多說,來搭建吧。
搭建
- 前往 https://www.elastic.co/products/elasticsearch 下載Elasticsearch,筆者使用的版本是 elasticsearch-6.5.3
- 啟動Elasticsearch:
cd elasticsearch-6.5.3/bin
./elasticsearch
# Elasticsearch集群的搭建大家自己百度一下吧,也很簡單。本文主要是講Zipkin,只用一個實例演示就可以了。
- 執行如下命令,啟動Zipkin Server
STORAGE_TYPE=elasticsearch ES_HOSTS=localhost:9200 java -jar zipkin-server-2.11.3-exec.jar
- 其中:STORAGE_TYPE 指定存儲類型是啥;ES_HOSTS 指定你的Elasticsearch地址列表,多個用 , 分隔。還可指定其他環境變量,詳見:https://github.com/openzipkin/zipkin/tree/master/zipkin-server#elasticsearch-storage
- 訪問 http://localhost:9411/ 即可看到Zipkin Server的首頁。
測試
測試步驟非常簡單:
- 按照 跟我學Spring Cloud(Finchley版)-25-Spring Cloud Sleuth與Zipkin配合使用 一節的描述,往Zipkin Server中存儲一些數據
- 停止Zipkin Server
- 再次啟動Zipkin Server,查看之前存儲的數據是否存在,如果存在說明數據已被持久化。
乾貨分享
最近將個人學習筆記整理成冊,使用PDF分享。關注我,回覆如下代碼,即可獲得百度盤地址,無套路領取!
- 001:《Java併發與高併發解決方案》學習筆記;
- 002:《深入JVM內核——原理、診斷與優化》學習筆記;
- 003:《Java面試寶典》
- 004:《Docker開源書》
- 005:《Kubernetes開源書》
- 006:《DDD速成(領域驅動設計速成)》
您的關注是對我最大的支持!
本文首發:http://www.itmuch.com/spring-cloud/finchley-26/
閱讀更多 IT牧場 的文章