
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
YugabyteDB 是一款高性能、云原生分布式SQL数据库,旨在支持所有PostgreSQL特性。它最适合云原生OLTP(即实时、业务关键)应用,这类应用需要绝对的数据正确性,且至少满足以下一项需求:可扩展性、高故障容忍能力、全球分布式部署。
Yugabyte SQL(简称YSQL)复用PostgreSQL的查询层(类似Amazon Aurora PostgreSQL),支持其大部分特性,包括数据类型、查询、表达式、运算符与函数、存储过程、触发器、扩展等。https://github.com/yugabyte/yugabyte-db/blob/master/architecture/YSQL-Features-Supported.md%E3%80%82
事务设计基于Google Spanner架构,通过Raft共识实现写操作的强一致性复制,使用混合逻辑时钟(hybrid logical clocks)支持集群级分布式ACID事务。支持快照隔离(Snapshot)和可序列化隔离(Serializable)级别。默认情况下读操作(查询)具有强一致性,可动态调整为从副本读取。
YugabyteDB原生支持故障转移和自动修复,能有效应对常见故障。可配置为自动容忍磁盘、节点、可用区、区域及云服务商级别的故障。典型部署(单区域多可用区)下,RPO为0(故障时无数据丢失),RTO为3秒(故障节点数据3秒内恢复可用)。
为提升IOPS或数据存储容量,扩展YugabyteDB集群只需添加节点,操作简单高效。
可部署于公有云及Kubernetes环境,支持跨多故障域(多可用区、多区域、多云)部署。支持xCluster异步复制,包括单向主从和双向多主配置,适用于双区域部署。同时支持只读副本,以低延迟提供(非实时)数据服务。
查询层具备可扩展性,当前支持两种分布式SQL API:
基于Apache 2.0许可证完全开源,开源版本包含企业级特性:分布式备份、静态数据加密、传输中TLS加密、变更数据捕获(CDC)、只读副本等。
1. 安装与启动集群
单节点本地部署:
bashdocker run -d --name yugabyte \ -p 5433:5433 -p 7000:7000 -p 9000:9000 -p 9042:9042 \ yugabytedb/yugabyte:latest \ bin/yugabyted start --daemon=false --ui=true
多节点集群部署(使用docker-compose):
yamlversion: '3' services: yb-master-1: image: yugabytedb/yugabyte:latest command: > bin/yb-master --master_addresses=yb-master-1:7100,yb-master-2:7100,yb-master-3:7100 --rpc_bind_addresses=yb-master-1:7100 --fs_data_dirs=/mnt/disk0 ports: - "7000:7000" volumes: - yb-master-1-data:/mnt/disk0 yb-master-2: image: yugabytedb/yugabyte:latest command: > bin/yb-master --master_addresses=yb-master-1:7100,yb-master-2:7100,yb-master-3:7100 --rpc_bind_addresses=yb-master-2:7100 --fs_data_dirs=/mnt/disk0 volumes: - yb-master-2-data:/mnt/disk0 yb-master-3: image: yugabytedb/yugabyte:latest command: > bin/yb-master --master_addresses=yb-master-1:7100,yb-master-2:7100,yb-master-3:7100 --rpc_bind_addresses=yb-master-3:7100 --fs_data_dirs=/mnt/disk0 volumes: - yb-master-3-data:/mnt/disk0 yb-tserver-1: image: yugabytedb/yugabyte:latest command: > bin/yb-tserver --tserver_master_addrs=yb-master-1:7100,yb-master-2:7100,yb-master-3:7100 --rpc_bind_addresses=yb-tserver-1:9100 --ysql_bind_address=yb-tserver-1:5433 --ycql_bind_address=yb-tserver-1:9042 --fs_data_dirs=/mnt/disk0 ports: - "5433:5433" - "9042:9042" volumes: - yb-tserver-1-data:/mnt/disk0 depends_on: - yb-master-1 - yb-master-2 - yb-master-3 volumes: yb-master-1-data: yb-master-2-data: yb-master-3-data: yb-tserver-1-data:
2. 连接数据库
通过YSQL连接(兼容PostgreSQL客户端):
bashdocker exec -it yugabyte bin/ysqlsh -h localhost -U yugabyte -d yugabyte
通过YCQL连接:
bashdocker exec -it yugabyte bin/ycqlsh localhost 9042
3. 执行SQL命令示例
sql-- 创建表 CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL ); -- 插入数据 INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com'); -- 查询数据 SELECT * FROM users;
YugabyteDB支持多种语言及客户端驱动,以下为常用语言与驱动对照表:
| 语言 | ORM | YSQL驱动 | YCQL驱动 |
|---|---|---|---|
| Java | Spring/Hibernate | PostgreSQL JDBC | cassandra-driver-core-yb |
| Go | Gorm | pq | gocql |
| NodeJS | Sequelize | pg | cassandra-driver |
| Python | SQLAlchemy | psycopg2 | yb-cassandra-driver |
| Ruby | ActiveRecord | pg | yugabyte-ycql-driver |
| C# | EntityFramework | npgsql | CassandraCSharpDriver |
| C++ | - | libpqxx | cassandra-cpp-driver |
| C | - | libpq | - |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务