小强哥博客

小强哥,小强哥博客,技术大咖

ZipKin使用Docker链接Casandra集群

项目最近打算使用ZipKin+Casandra用来做链路追踪,这篇文章记录一下测试环境安装过程。

Cassandra集群安装

Cassandra集群安装比较简单,首先官网下载一个Cassandra安装包,下载地址如下,

http://www.apache.org/dyn/closer.lua/cassandra/3.11.3/apache-cassandra-3.11.3-bin.tar.gz

由于Cassandra在Linux上运行不能使用root账户,因此还需要创建一个新的Linux账户,如下,

useradd -m cassandra

接着在cassandra账户下解压Cassandra安装包,如下

tar -xzvf apache-cassandra-3.11.3-bin.tar.gz

集群配置

集群配置比较简单,只需要修改cassandra.yaml中的部分配置,如下,

cluster_name:集群名称,一个友好的名称,比如命名:myCassandra。
seeds:集群成员节点,如配置成:192.168.31.100,192.168.31.101,192.168.31.102。
listen_address:本机内网IP,设置以后可以让集群其它节点访问到该节点。
rpc_address:本机内网IP,设置以后可以让客户端API访问到。
start_rpc: true,启用节点RPC。

这样配置集群就可以启动了。

启动

使用./bin/cassandra脚本后台启动。如果需要停止cassandra需要通过ps名命令找到进程号,然后通过kill命令杀死进程。

cassandra自带的nodetool工具可以查看集群状态,如下,

[myserver@8a395788b245 bin]$ ./nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
UN  172.17.0.3  360.48 KiB  256          32.5%             59d4ebdc-04a9-428a-96f1-8c4d791b93f8  rack1
UN  172.17.0.2  274.8 KiB  256          33.0%             662aad1b-7e5c-45b4-b1c8-7f2229e4eb62  rack1
UN  172.17.0.4  306.1 KiB  256          34.5%             b17a2437-900d-4e43-b46f-2986e6f72843  rack1

Zipkin

使用zipkin镜像可以快速创建、链接Cassandra集群,按照如下参数可以快速启动,其它参数下有说明,如下,

sudo docker run -it -e STORAGE_TYPE="cassandra3" -e CASSANDRA_CONTACT_POINTS="172.17.0.2,172.17.0.3,172.17.0.4" --rm -p 9411:9411 docker.io/openzipkin/zipkin 

docker参数就不多说了,具体可以百度。我这里记录一下zipkin镜像的环境遍量:

STORAGE_TYPE:cassandra3,表示zipkin持久化数据使用cassandra来进行,因为zipkin程序中存在cassandra2X和cassandra3X版本,这里使用cassandra3表示启用assandra3X版本。
CASSANDRA_CONTACT_POINTS:cassandra集群地址,多个可以使用逗号个开,如:172.29.32.55,172.29.32.56,172.29.32.57,默认端口为9402,如果端口自定义可以在IP后面加上端口。
CASSANDRA_LOCAL_DC:不才,没看懂,官方意思是(Name of the datacenter that will be considered "local" for latency load balancing. When unset, load-balancing is round-robin.)
CASSANDRA_USERNAME:数据库账。
CASSANDRA_PASSWORD:数据库密码。
CASSANDRA_KEYSPACE:数据库名称。
CASSANDRA_MAX_CONNECTIONS:不才,没理解,官方解释( Max pooled connections per datacenter-local host.)
CASSANDRA_ENSURE_SCHEMA:true,是否使用默认数据库脚本自动创建,默认true。
CASSANDRA_INDEX_FETCH_MULTIPLIER:不才,没理解,官方意思(how many more index rows to fetch than the user-supplied query limit)
CASSANDRA_USE_SSL:false,是否使用ssl链接,默认false。

完。

参考:

https://blog.csdn.net/u012842205/article/details/72781463

https://blog.csdn.net/zhuwinmin/article/details/76063203

https://blog.csdn.net/fs1360472174/article/details/51705634