Dgraph 安装
图数据库安装
使用docker 编排安装
Docker Compose 文件
以下是用于配置 Dgraph 的 Docker Compose 文件:
version: "3.2"
services:
zero:
image: dgraph/dgraph:latest
volumes:
- /opt/dgraph:/dgraph
ports:
- 5080:5080
- 6080:6080
restart: on-failure
command: dgraph zero --my=zero:5080
alpha:
image: dgraph/dgraph:latest
volumes:
- /opt/dgraph:/dgraph
ports:
- 8080:8080
- 9080:9080
restart: on-failure
command: dgraph alpha --my=alpha:7080 --zero=zero:5080 --security whitelist=0.0.0.0/0
# 此处作IP地址限制,比如替换为: 172.0.0.0/8
ratel:
image: dgraph/ratel:latest
ports:
- 8000:8000
增加ACL安全控制的 Docker Compose 文件:
version: "3.5"
services:
zero:
image: dgraph/dgraph:latest
volumes:
- /opt/dgraph:/dgraph
ports:
- 5080:5080
- 6080:6080
restart: on-failure
command: dgraph zero --my=zero:5080
alpha:
image: dgraph/dgraph:latest
environment:
DGRAPH_ALPHA_ACL: secret-file=/dgraph/hmac_secret_file
DGRAPH_ALPHA_SECURITY: whitelist=0.0.0.0/0
volumes:
- /opt/dgraph:/dgraph
ports:
- 8080:8080
- 9080:9080
restart: on-failure
command: dgraph alpha --my=alpha:7080 --zero=zero:5080
ratel:
image: dgraph/ratel:latest
ports:
- 8000:8000
生成随机key命令:
tr -dc 'a-zA-Z0-9' < /dev/urandom | dd bs=1 count=32 of=enc_key_file
或者:
openssl rand -base64 32 > hmac_secret_file
组件说明如下:
Zero:Dgraph 的管理节点,负责集群的元数据管理和协调。Zero 处理节点的加入和离开,负责分配分片(shards)和管理集群的状态。
Alpha:Dgraph 的数据节点,实际存储和处理图数据。Alpha 节点负责执行查询、更新数据和管理存储。一个 Dgraph 集群通常会有多个 Alpha 节点以实现负载均衡和高可用性。
Ratel:Dgraph 的用户界面(UI),用于与 Dgraph 交互。Ratel 提供了一个友好的图形界面,用户可以通过它执行查询、管理数据和监控集群状态。
这三个组件共同工作,使 Dgraph 能够高效地处理大规模的图数据。
Dgraph 的端口说明如下:
1. Zero
5080:用于 Zero 节点之间的通信(RPC)。
2. Alpha
7080:用于 Alpha 的实时查询(Live Query)和订阅功能。
8080:GraphQL API 服务端口,用于 GraphQL 客户端与 Alpha 节点的通信( GraphQL API )。
9080:使用 HTTP 和 JSON 格式进行数据交互的接口,用于 HTTP 客户端与 Alpha 节点的通信( HTTP API)。
9180:用于 Alpha 节点之间的通信(gRPC)。
3. Ratel
8000:Ratel 的默认端口,用户通过浏览器访问图形用户界面。
其他
9081:用于 Alpha 的 GraphQL API(可选)。
--my=alpha:7080 --zero=zero:5080 :
Dgraph 启动时的配置选项,用于指定 Alpha 节点和 Zero 节点的连接信息
参考资料: