Dgraph集群安装搭建
dgraph图数据库简单介绍
Dgraph 是一个具有图形后端的水平可扩展和分布式 GraphQL 数据库。它提供 ACID 事务、一致复制和线性化读取。它是从头开始构建的,用于执行一组丰富的查询。作为原生 GraphQL 数据库,它严格控制数据在磁盘上的排列方式,以优化查询性能和吞吐量,减少集群中的磁盘寻道和网络调用。
Dgraph 的目标是提供Google生产级别的规模和吞吐量,并以足够低的延迟为超过 TB 的结构化数据提供实时用户查询。Dgraph 支持GraphQL 查询语法,并通过 GRPC 和 HTTP 以JSON和Protocol Buffers响应。
Dgraph 与其他图形数据库的比较
搭建后的效果
📢 相关节点介绍
Dgraph 集群由不同的节点(Zero、Alpha)组成,每个节点都有不同的用途。
- Dgraph Zero控制 Dgraph 集群,将服务器分配给一个组,并在服务器组之间重新平衡数据。
- Dgraph Alpha托管谓词和索引。谓词要么是与节点关联的属性,要么是两个节点之间的关系。索引是可以与谓词相关联的标记器,以启用使用适当函数的过滤。
- Ratel服务于 UI 以运行查询、突变和改变模式。
📢 如果需要Ratel安装方式可以评论留言
下面开始介绍如何搭建
安装方式:docker-compose
启动命令
docker-compose up -d
关闭命令
docker-compose down
docker-compose.xml
💡 下面是三个zero节点,6个alpha节点,可根据实际机器个数进行调整
version: "3.2"
services:
zero:
image: dgraph/dgraph:v21.12-slash
volumes:
- /tmp/data:/dgraph
ports:
- 5080:5080
- 6080:6080
restart: on-failure
command: dgraph zero --my=10.11.32.15:5080 --replicas 3 --raft="idx=1"
networks:
- net-test
alpha:
image: dgraph/dgraph:v21.12-slash
volumes:
- /tmp/data/d0:/dgraph
ports:
- 7080:7080
- 8080:8080
- 9080:9080
deploy:
replicas: 1
restart: on-failure
command: dgraph alpha --my=10.11.32.15:7080 --zero=10.11.32.15:5080,10.11.36.115:5080,10.11.35.248:5080 --security whitelist=0.0.0.0/0
networks:
- net-test
alpha1:
image: dgraph/dgraph:v21.12-slash
volumes:
- /tmp/data/d1:/dgraph
ports:
- 7081:7081
- 8081:8081
- 9081:9081
restart: on-failure
command: dgraph alpha --my=10.11.32.15:7081 --zero=10.11.32.15:5080,10.11.36.115:5080,10.11.35.248:5080 --security whitelist=0.0.0.0/0 -o 1
networks:
- net-test
networks:
net-test:
ipam:
config:
- subnet: 192.168.255.0/24
version: "3.2"
services:
zero:
image: dgraph/dgraph:v21.12-slash
volumes:
- /tmp/data:/dgraph
ports:
- 5080:5080
- 6080:6080
restart: on-failure
command: dgraph zero --my=10.11.36.115:5080 --replicas 3 --peer 10.11.32.15:5080 --raft="idx=2"
networks:
- net-test
alpha:
image: dgraph/dgraph:v21.12-slash
volumes:
- /tmp/data/d0:/dgraph
ports:
- 7080:7080
- 8080:8080
- 9080:9080
deploy:
replicas: 1
restart: on-failure
command: dgraph alpha --my=10.11.36.115:7080 --zero=10.11.32.15:5080,10.11.36.115:5080,10.11.35.248:5080 --security whitelist=0.0.0.0/0
networks:
- net-test
alpha1:
image: dgraph/dgraph:v21.12-slash
volumes:
- /tmp/data/d1:/dgraph
ports:
- 7081:7081
- 8081:8081
- 9081:9081
restart: on-failure
command: dgraph alpha --my=10.11.36.115:7081 --zero=10.11.32.15:5080,10.11.36.115:5080,10.11.35.248:5080 --security whitelist=0.0.0.0/0 -o 1
networks:
- net-test
networks:
net-test:
ipam:
config:
- subnet: 192.168.255.0/24
version: "3.2"
services:
zero:
image: dgraph/dgraph:v21.12-slash
volumes:
- /tmp/data:/dgraph
ports:
- 5080:5080
- 6080:6080
restart: on-failure
command: dgraph zero --my=10.11.35.248:5080 --replicas 3 --peer 10.11.32.15:5080 --raft="idx=3"
networks:
- net-test
alpha:
image: dgraph/dgraph:v21.12-slash
volumes:
- /tmp/data/d0:/dgraph
ports:
- 7080:7080
- 8080:8080
- 9080:9080
deploy:
replicas: 1
restart: on-failure
command: dgraph alpha --my=10.11.35.248:7080 --zero=10.11.32.15:5080,10.11.36.115:5080,10.11.35.248:5080 --security whitelist=0.0.0.0/0
networks:
- net-test
alpha1:
image: dgraph/dgraph:v21.12-slash
volumes:
- /tmp/data/d1:/dgraph
ports:
- 7081:7081
- 8081:8081
- 9081:9081
restart: on-failure
command: dgraph alpha --my=10.11.35.248:7081 --zero=10.11.32.15:5080,10.11.36.115:5080,10.11.35.248:5080 --security whitelist=0.0.0.0/0 -o 1
networks:
- net-test
networks:
net-test:
ipam:
config:
- subnet: 192.168.255.0/24