在本地使用 Docker 运行多个因果集群
在同一台服务器或机器上运行多个因果集群非常容易。您需要确保
-
每个集群都需要在自己的 Docker 网络上运行
-
必须防止端口映射重叠
-
causal_clustering.initial_discovery_members
需要包含其集群中所有机器的列表 -
需要显式设置 bolt 的广告主机名和端口
以下示例运行 2 个独立的集群,每个集群包含 3 个核心实例
#!/bin/sh
# cluster 1
docker network create --driver=bridge cluster1
docker run --name=core1 --detach --network=cluster1 \
--publish=7474:7474 --publish=7473:7473 --publish=7687:7687 \
--env=NEO4J_dbms_mode=CORE \
--env=NEO4J_causal__clustering_expected__core__cluster__size=3 \
--env=NEO4J_causal__clustering_initial__discovery__members=core1:5000,core2:5000,core3:5000 \
--env=NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
--env=NEO4J_dbms_connector_bolt_advertised__address=localhost:7687 \
--env=NEO4J_AUTH=none \
neo4j:3.3-enterprise
docker run --name=core2 --detach --network=cluster1 \
--publish=8474:7474 --publish=8473:7473 --publish=8687:7687 \
--env=NEO4J_dbms_mode=CORE \
--env=NEO4J_causal__clustering_expected__core__cluster__size=3 \
--env=NEO4J_causal__clustering_initial__discovery__members=core1:5000,core2:5000,core3:5000 \
--env=NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
--env=NEO4J_dbms_connector_bolt_advertised__address=localhost:8687 \
--env=NEO4J_AUTH=none \
neo4j:3.3-enterprise
docker run --name=core3 --detach --network=cluster1 \
--publish=9474:7474 --publish=9473:7473 --publish=9687:7687 \
--env=NEO4J_dbms_mode=CORE \
--env=NEO4J_causal__clustering_expected__core__cluster__size=3 \
--env=NEO4J_causal__clustering_initial__discovery__members=core1:5000,core2:5000,core3:5000 \
--env=NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
--env=NEO4J_dbms_connector_bolt_advertised__address=localhost:9687 \
--env=NEO4J_AUTH=none \
neo4j:3.3-enterprise
# cluster 2
docker network create --driver=bridge cluster2
docker run --name=core21 --detach --network=cluster2 \
--publish=17474:7474 --publish=17473:7473 --publish=17687:7687 \
--env=NEO4J_dbms_mode=CORE \
--env=NEO4J_causal__clustering_expected__core__cluster__size=3 \
--env=NEO4J_causal__clustering_initial__discovery__members=core21:5000,core22:5000,core23:5000 \
--env=NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
--env=NEO4J_dbms_connector_bolt_advertised__address=localhost:17687 \
--env=NEO4J_AUTH=none \
neo4j:3.3-enterprise
docker run --name=core22 --detach --network=cluster2 \
--publish=18474:7474 --publish=18473:7473 --publish=18687:7687 \
--env=NEO4J_dbms_mode=CORE \
--env=NEO4J_causal__clustering_expected__core__cluster__size=3 \
--env=NEO4J_causal__clustering_initial__discovery__members=core21:5000,core22:5000,core23:5000 \
--env=NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
--env=NEO4J_dbms_connector_bolt_advertised__address=localhost:18687 \
--env=NEO4J_AUTH=none \
neo4j:3.3-enterprise
docker run --name=core23 --detach --network=cluster2 \
--publish=19474:7474 --publish=19473:7473 --publish=19687:7687 \
--env=NEO4J_dbms_mode=CORE \
--env=NEO4J_causal__clustering_expected__core__cluster__size=3 \
--env=NEO4J_causal__clustering_initial__discovery__members=core21:5000,core22:5000,core23:5000 \
--env=NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
--env=NEO4J_dbms_connector_bolt_advertised__address=localhost:19687 \
--env=NEO4J_AUTH=none \
neo4j:3.3-enterprise
此页面是否有用?