jaeger 使用scylladb作為后端存儲


scylladb 是一個不錯的apache Cassandra 替代,而且兼容很不錯,今天在嘗試過yugabyte 之后放棄了,因為在進行jaeger 創建
Cassandra schema 的時候碰到各種問題(可能兼容還是少有問題),試用之后發現很不錯,沒有碰到錯誤,以下是一個演示環境
使用了docker-compose 運行

環境准備

  • docker-compose 文件
 
version: "3"
services: 
  scylladb:
    image: scylladb/scylla
    ports: 
    - "9042:9042"
  scylladb2:
   image: scylladb/scylla
   command: --seeds=scylladb
   ports: 
   - "9043:9042"
  scylladb3:
   image: scylladb/scylla
   command: --seeds=scylladb
   ports: 
   - "9044:9042"
  jaeger:
    image: jaegertracing/all-in-one:1.13
    environment:
      - COLLECTOR_ZIPKIN_HTTP_PORT=9411
      - CASSANDRA_SERVERS=scylladb,scylladb2,scylladb3
      - SPAN_STORAGE_TYPE=cassandra
    ports:
      - "9411:9411"
      - "5775:5775/udp"
      - "6831:6831/udp"
      - "6832:6832/udp"
      - "16686:16686"
  • 簡單說明
    以上是一個簡單的scylladb 集群環境,三個節點,同時使用了jaeger 的all-in-one,對於大規模的請求依賴處理的方式還是
    推薦基於spark 等大數據的方式,會加快數據的生成

測試項目

  • nodejs 項目
    從github clone 了一個簡單的nodejs 項目,盡管有點問題,但是不影響測試
git clone https://github.com/luoyjx/opentracing-demos.git
  • 啟動docker-compose
docker-compose up -d
  • 創建schema

    需要clone jaeger 項目,同時需要配置本地cqlsh 工具

git clone https://github.com/jaegertracing/jaeger.git
cd jaeger
MODE=test sh ./plugin/storage/cassandra/schema/create.sh | cqlsh
  • 重啟jaeger
docker-compose restart jaeger
  • nodejs 啟動
方式很簡單,進入服務目錄 yarn 以及node <startscript>

效果

  • jaeger ui

 

  • 注冊的service

    nodejs 應用

 

  • 一個簡單的請求鏈路

 

  • 服務依賴

 

說明

以上是一個簡單的測試集成,實際生產使用還有好多事情需要做

參考資料

https://docs.scylladb.com/
https://www.jaegertracing.io/docs/1.13/architecture/
https://github.com/rongfengliang/scylladb-jaeger


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM