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