91 lines
3.0 KiB
Markdown
91 lines
3.0 KiB
Markdown
# Apache Cassandra
|
||
|
||
[English](./README.md) | [中文](./README.zh.md)
|
||
|
||
此服务用于部署 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 配置文件
|
||
|
||
## 使用方法
|
||
|
||
1. 启动服务:
|
||
|
||
```bash
|
||
docker compose up -d
|
||
```
|
||
|
||
2. 等待 Cassandra 就绪(查看日志):
|
||
|
||
```bash
|
||
docker compose logs -f cassandra
|
||
```
|
||
|
||
3. 使用 cqlsh 连接:
|
||
|
||
```bash
|
||
docker exec -it cassandra cqlsh
|
||
```
|
||
|
||
## 基本 CQL 命令
|
||
|
||
```sql
|
||
-- 创建键空间
|
||
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 版本
|