如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
和生成的Java存根,用于Store通信 |
| hg-store-common | 共享工具、查询抽象、常量和缓冲区管理 |
| hg-store-rocksdb | RocksDB抽象层,包含会话管理和优化的扫描迭代器 |
| hg-store-core | 核心存储引擎:分区管理、Raft集成、元数据协调、业务逻辑 |
| hg-store-client | Java客户端库,供应用程序连接到Store集群并执行操作 |
| hg-store-node | Store节点服务器实现,包含gRPC服务、Raft协调和PD集成 |
| hg-store-cli | 用于Store管理和调试的命令行工具 |
| hg-store-test | 所有Store组件的全面单元测试和集成测试 |
| hg-store-dist | 分发组件:打包、配置模板、启动脚本 |
客户端层 (hugegraph-server) ↓ (通过hg-store-client连接gRPC) Store节点层 (hg-store-node) ├─ gRPC服务 (会话、查询、状态) ├─ 分区引擎 (每个分区 = 一个Raft组) └─ PD集成 (心跳、分区分配) ↓ 存储引擎层 (hg-store-core + hg-store-rocksdb) ├─ HgStoreEngine (管理所有分区引擎) ├─ PartitionEngine (每个分区的Raft状态机) └─ RocksDB (持久化存储)
有关详细架构、Raft共识机制和分区管理,请参见分布式架构。
重要:首先构建hugegraph-struct,因为它是必需的依赖项。
从项目根目录:
bash# 构建struct模块 mvn install -pl hugegraph-struct -am -DskipTests # 构建Store及所有依赖 mvn clean package -pl hugegraph-store/hg-store-dist -am -DskipTests
组装好的发行版将位于:
hugegraph-store/apache-hugegraph-store-<version>/lib/hg-store-node-<version>.jar
解压发行包并编辑conf/application.yml:
核心设置
| 参数 | 默认值 | 描述 |
|---|---|---|
pdserver.address | localhost:8686 | 必填:PD集群端点(逗号分隔,例如:192.168.1.10:8686,192.168.1.11:8686) |
grpc.host | 127.0.0.1 | gRPC服务器绑定地址(生产环境使用实际IP) |
grpc.port | 8500 | 用于客户端连接的gRPC服务器端口 |
raft.address | 127.0.0.1:8510 | 此Store节点的Raft服务地址 |
raft.snapshotInterval | 1800 | Raft快照间隔(秒),默认30分钟 |
server.port | 8520 | 用于管理和指标的REST API端口 |
app.data-path | ./storage | RocksDB数据存储目录(支持多路径用于多磁盘设置) |
app.fake-pd | false | 启用内置PD模式用于单机测试(不用于生产) |
单节点开发示例(使用fake-pd)
yamlpdserver: address: localhost:8686 # 当fake-pd为true时忽略 grpc: host: 127.0.0.1 port: 8500 raft: address: 127.0.0.1:8510 snapshotInterval: 1800 server: port: 8520 app: data-path: ./storage fake-pd: true # 内置PD模式(仅开发使用)
3节点集群示例(生产环境)
先决条件:运行中的3节点PD集群,地址为192.168.1.10:8686,192.168.1.11:8686,192.168.1.12:8686
Store节点1(192.168.1.20):
yamlpdserver: address: 192.168.1.10:8686,192.168.1.11:8686,192.168.1.12:8686 grpc: host: 192.168.1.20 port: 8500 raft: address: 192.168.1.20:8510 app: data-path: ./storage fake-pd: false
Store节点2(192.168.1.21):
yamlpdserver: address: 192.168.1.10:8686,192.168.1.11:8686,192.168.1.12:8686 grpc: host: 192.168.1.21 port: 8500 raft: address: 192.168.1.21:8510 app: data-path: ./storage fake-pd: false
Store节点3(192.168.1.22):
yamlpdserver: address: 192.168.1.10:8686,192.168.1.11:8686,192.168.1.12:8686 grpc: host: 192.168.1.22 port: 8500 raft: address: 192.168.1.22:8510 app: data-path: ./storage fake-pd: false
有关详细配置选项、RocksDB调优和部署拓扑,请参见部署指南。
启动Store服务器:
bash# 替换{version}为您的hugegraph版本 # 对于历史版本1.7.0及更早版本,使用 # apache-hugegraph-store-incubating-{version} cd apache-hugegraph-store-{version} # 启动Store节点 bin/start-hugegraph-store.sh # 停止Store节点 bin/stop-hugegraph-store.sh # 重启Store节点 bin/restart-hugegraph-store.sh
启动选项
bashbin/start-hugegraph-store.sh [-g GC_TYPE] [-j "JVM_OPTIONS"]
-g:GC类型(g1或ZGC,默认:g1)-j:自定义JVM选项(例如:-j "-Xmx16g -Xms8g")默认JVM内存设置(在start-hugegraph-store.sh中定义):
检查Store是否运行并已注册到PD:
bash# 检查进程 ps aux | grep hugegraph-store # 测试gRPC端点(需要grpcurl) grpcurl -plaintext localhost:8500 list # 检查REST API健康状态 curl http://localhost:8520/v1/health # 查看日志 tail -f logs/hugegraph-store.log # 验证是否已注册到PD(从PD节点执行) curl http://localhost:8620/v1/stores
对于生产环境部署,请参见部署指南和最佳实践。
HugeGraph Store作为HugeGraph Server的可插拔后端。要使用Store作为后端:
编辑hugegraph-server/conf/graphs/<graph-name>.properties:
properties# 后端配置 backend=hstore serializer=binary # Store连接(PD地址) store.provider=org.apache.hugegraph.backend.store.hstore.HstoreProvider store.pd_peers=192.168.1.10:8686,192.168.1.11:8686,192.168.1.12:8686 # 连接池设置 store.max_sessions=4 store.session_timeout=30000
确保PD和Store集群正在运行,然后启动HugeGraph Server:
bashcd hugegraph-server bin/init-store.sh # 初始化模式 bin/start-hugegraph.sh
bash# 通过REST API检查后端 curl --location --request GET 'http://localhost:8080/metrics/backend' \ --header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' # 响应应显示: # {"backend": "hstore", "nodes": [...]}
运行Store测试:
bash# 所有测试(从hugegraph根目录) mvn test -pl hugegraph-store/hg-store-test -am # 特定测试模块 mvn test -pl hugegraph-store/hg-store-test -am -Dtest=HgStoreEngineTest # 从hugegraph-store目录 cd hugegraph-store mvn test
Store测试分为6个配置文件(默认全部激活):
store-client-test:客户端库测试store-core-test:核心存储和分区管理测试store-common-test:通用工具和查询抽象测试store-rocksdb-test:RocksDB抽象层测试store-server-test:Store节点服务器和gRPC服务测试store-raftcore-test:Raft共识集成测试有关开发工作流和调试,请参见开发指南。
从项目根目录:
bashdocker build -f hugegraph-store/Dockerfile -t hugegraph-store:latest .
bashdocker run -d \ -p 8520:8520 \ -p 8500:8500 \ -p 8510:8510 \ -v /path/to/conf:/hugegraph-store/conf \ -v /path/to/storage:/hugegraph-store/storage \ -e PD_ADDRESS=192.168.1.10:8686,192.168.1.11:8686 \ --name hugegraph-store \ hugegraph-store:latest
暴露端口:
8520:REST API(管理、指标)8500:gRPC(客户端连接)8510:Raft共识完整的HugeGraph分布式部署(PD + Store + Server)示例,请参见:
hugegraph-server/hugegraph-dist/docker/example/
有关Docker和Kubernetes部署详情,请参见部署指南。
HugeGraph Store的综合文档:
| 文档 | 描述 |
|---|---|
| 分布式架构 | 深入了解三层架构、Raft共识、分区管理和PD协调 |
| 部署指南 | 生产部署拓扑、配置参考、Docker/Kubernetes设置 |
| 集成指南 | Store与HugeGraph Server集成、客户端API使用、从其他后端迁移 |
| 查询引擎 | 查询下推机制、多分区查询、gRPC API参考 |
| 操作指南 | 监控和指标、常见问题排查、备份和恢复、滚动升级 |
| 最佳实践 | 硬件规格、性能调优、安全配置、高可用性设计 |
| 开发指南 | 开发环境设置、模块架构、测试策略、贡献工作流 |
最小集群(开发/测试):
推荐生产集群:
大规模集群:
(N-1)/2个Store节点故障(例如,3副本设置可容忍1个故障)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务