apache/cassandra-testing-ubuntu1910-java11-w-dependencies本镜像为Apache Cassandra官方提供的测试专用Docker镜像,由apache/cassandra-builds项目维护(源码位于[***]
该测试镜像需从源码构建(目前未发布至Docker Hub),构建步骤如下:
bash# 克隆源码仓库 git clone [***] cd cassandra-builds/docker/testing # 构建镜像(可指定CASSANDRA_VERSION和JDK版本) docker build --build-arg CASSANDRA_VERSION=4.1.3 --build-arg JDK_VERSION=11 -t apache/cassandra-test:4.1.3-jdk11 .
启动单节点测试环境:
bashdocker run -d \ --name cassandra-test-node \ -p 9042:9042 \ # CQL端口 -p 7199:7199 \ # JMX端口 apache/cassandra-test:4.1.3-jdk11
常用环境变量:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
CASSANDRA_CLUSTER_NAME | 集群名称 | TestCluster |
CASSANDRA_NUM_TOKENS | 每个节点的初始令牌数 | 256 |
CASSANDRA_SEEDS | 种子节点IP(多节点集群时使用) | 127.0.0.1 |
TEST_MODE | 测试模式(unit/integration/stress) | unit |
示例:启动集成测试模式的节点
bashdocker run -d \ --name cassandra-integration-test \ -e TEST_MODE=integration \ -e CASSANDRA_CLUSTER_NAME=IntegrationTest \ apache/cassandra-test:4.1.3-jdk11
挂载本地测试脚本至容器:
bashdocker run -d \ --name cassandra-custom-test \ -v $(pwd)/test-scripts:/opt/cassandra/test-scripts \ # 挂载测试脚本目录 -v $(pwd)/test-data:/opt/cassandra/test-data \ # 挂载测试数据集 apache/cassandra-test:4.1.3-jdk11 \ /opt/cassandra/test-scripts/run-custom-tests.sh # 执行自定义测试脚本
创建docker-compose.yml:
yamlversion: '3' services: cassandra-seed: image: apache/cassandra-test:4.1.3-jdk11 container_name: cassandra-seed environment: - CASSANDRA_CLUSTER_NAME=MultiNodeTest - CASSANDRA_NUM_TOKENS=128 - CASSANDRA_SEEDS=cassandra-seed # 种子节点指向自身 ports: - "9042:9042" networks: - cassandra-test-net cassandra-node1: image: apache/cassandra-test:4.1.3-jdk11 container_name: cassandra-node1 environment: - CASSANDRA_CLUSTER_NAME=MultiNodeTest - CASSANDRA_NUM_TOKENS=128 - CASSANDRA_SEEDS=cassandra-seed # 连接种子节点 depends_on: - cassandra-seed networks: - cassandra-test-net cassandra-node2: image: apache/cassandra-test:4.1.3-jdk11 container_name: cassandra-node2 environment: - CASSANDRA_CLUSTER_NAME=MultiNodeTest - CASSANDRA_NUM_TOKENS=128 - CASSANDRA_SEEDS=cassandra-seed depends_on: - cassandra-seed networks: - cassandra-test-net networks: cassandra-test-net: driver: bridge
启动集群并执行测试:
bash# 启动集群 docker-compose up -d # 进入种子节点执行集群状态检查 docker exec -it cassandra-seed nodetool status # 执行分布式测试脚本 docker exec -it cassandra-seed /opt/cassandra/test-scripts/run-cluster-tests.sh
测试日志默认输出至容器/var/log/cassandra/test.log,可通过以下命令查看:
bashdocker exec -it cassandra-test-node cat /var/log/cassandra/test.log
或挂载日志目录至本地:
bashdocker run -d \ -v $(pwd)/test-logs:/var/log/cassandra \ apache/cassandra-test:4.1.3-jdk11
JVM_OPTS环境变量自定义
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务