3.0 KiB
3.0 KiB
Apache Cassandra
此服务用于部署 Apache Cassandra,一个高度可扩展的 NoSQL 分布式数据库。
服务
cassandra:Cassandra 数据库服务
环境变量
| 变量名 | 说明 | 默认值 |
|---|---|---|
CASSANDRA_VERSION |
Cassandra 镜像版本 | 5.0.2 |
CASSANDRA_CQL_PORT_OVERRIDE |
CQL 主机端口映射(映射到端口 9042) | 9042 |
CASSANDRA_THRIFT_PORT_OVERRIDE |
Thrift 主机端口映射(映射到端口 9160) | 9160 |
CASSANDRA_CLUSTER_NAME |
Cassandra 集群名称 | Test Cluster |
CASSANDRA_DC |
数据中心名称 | datacenter1 |
CASSANDRA_RACK |
机架名称 | rack1 |
CASSANDRA_ENDPOINT_SNITCH |
端点嗅探器配置 | GossipingPropertyFileSnitch |
CASSANDRA_NUM_TOKENS |
每个节点的令牌数 | 256 |
CASSANDRA_SEEDS |
用于集群发现的种子节点 | cassandra |
CASSANDRA_START_RPC |
启用 Thrift RPC 接口 | false |
MAX_HEAP_SIZE |
JVM 最大堆大小 | 1G |
HEAP_NEWSIZE |
JVM 新生代堆大小 | 100M |
请根据实际需求修改 .env 文件。
卷
cassandra_data:Cassandra 数据目录cassandra_logs:Cassandra 日志目录./cassandra.yaml:可选的自定义 Cassandra 配置文件
使用方法
-
启动服务:
docker compose up -d -
等待 Cassandra 就绪(查看日志):
docker compose logs -f cassandra -
使用 cqlsh 连接:
docker exec -it cassandra cqlsh
基本 CQL 命令
-- 创建键空间
CREATE KEYSPACE test_keyspace
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
-- 使用键空间
USE test_keyspace;
-- 创建表
CREATE TABLE users (
id UUID PRIMARY KEY,
name TEXT,
email TEXT
);
-- 插入数据
INSERT INTO users (id, name, email)
VALUES (uuid(), 'John Doe', 'john@example.com');
-- 查询数据
SELECT * FROM users;
健康检查
该服务包含健康检查,用于验证 Cassandra 是否响应 CQL 查询。
安全提示
- 此配置用于开发/测试目的
- 生产环境请启用身份验证和 SSL/TLS
- 配置适当的网络安全和防火墙规则
- 定期备份数据并更新 Cassandra 版本