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

posted on 2019-07-18 15:19  荣锋亮  阅读(1492)  评论(0编辑  收藏  举报

导航