stargateio/stargate-4_0此镜像适用于 Stargate v1。对于 Stargate v2,请参考 stargateio/coordinator-4_0 镜像。
本镜像为 Stargate v1 版本,针对 Apache Cassandra 4.0 后端,提供开源 API 框架支持。Stargate 作为数据网关部署于客户端应用与数据库之间,以可扩展性为核心设计理念,通过插件机制支持新 API、数据类型及访问方式,简化不同应用 workload 对数据库的使用。
Stargate 包含三大核心服务组件,协同实现数据网关功能:
负责 API 定义、请求处理与转换、结果返回,支持以下接口:
实现协调层,将 API 服务的请求转发至底层数据存储实例:
负责 Stargate 访问认证:
开发者模式无需单独部署 Cassandra 实例,适用于本地开发测试。
shelldocker run --name stargate \ -p 8081:8081 \ -p 8082:8082 \ -p 127.0.0.1:9042:9042 \ -d \ -e CLUSTER_NAME=stargate \ -e CLUSTER_VERSION=3.11 \ -e DEVELOPER_MODE=true \ stargateio/stargate-4_0:{stargate-docker-tag}
CLUSTER_NAME:集群名称(开发者模式下自定义)CLUSTER_VERSION:后端版本(开发者模式下填 3.11)DEVELOPER_MODE:启用开发者模式(true){stargate-docker-tag}:替换为具体版本标签(如 v1.0.0)适用于模拟生产环境的多节点部署,需配合 Cassandra 集群。官方提供多种后端的 Compose 示例:
| 后端类型 | 示例地址 |
|---|---|
| Apache Cassandra 3.11 | cassandra-3.11 |
| Apache Cassandra 4.0 | cassandra-4.0 |
| DSE 6.8 | dse-6.8 |
environment 部分配置对 Stargate 正常运行至关重要:
yamlenvironment: # 集群名称必须与后端集群名称一致 - CLUSTER_NAME=backend # 版本必须与后端版本匹配(如 3.11 / 4.0) - CLUSTER_VERSION=4.0 # 至少配置一个种子节点(后端集群种子节点地址) - SEED=backend-1 # 机架和数据中心名称必须与后端匹配(注意:Cassandra 与 DSE 默认值不同) - RACK_NAME=rack1 - DATACENTER_NAME=dc1
由于后端(Cassandra/DSE)容器启动后需时间初始化,直接启动可能导致 Stargate 因后端未就绪而失败,建议使用官方提供的 wrapper 脚本确保启动顺序:
shell# 示例:Cassandra 4.0 后端启动脚本 git clone [***] cd docker-images/examples/cassandra-4.0 ./start_cass40.sh
如需手动启动 Compose 文件:
shelldocker-compose --file <compose-file.yml> up
| 环境变量 | 说明 | 取值示例 |
|---|---|---|
CLUSTER_NAME | 集群名称,必须与后端 Cassandra 集群名称一致 | stargate |
CLUSTER_VERSION | 后端集群版本,必须与实际版本匹配 | 4.0 |
DEVELOPER_MODE | 是否启用开发者模式(开发测试用,无需独立 Cassandra) | true/false |
SEED | 后端集群种子节点地址(生产模式必填,至少一个) | backend-1 |
RACK_NAME | 机架名称,必须与后端集群机架名称一致 | rack1 |
DATACENTER_NAME | 数据中心名称,必须与后端集群数据中心名称一致 | dc1 |
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务