Neo4J 图库的集群部署与基础使用
Ned4J 图库的集群部署与基础使用
部署机器
名称 | 配置 | IP |
---|---|---|
server1 | 8 核 16G | 172.16.0.2 |
server2 | 8 核 16G | 172.16.0.3 |
server3 | 8 核 16G | 172.16.0.4 |
server4 | 8 核 16G | 172.16.0.5 |
# 创建项目目录 mkdir -p /opt/neo4j/ # 环境变量 export USER_ID="$(id -u)" export GROUP_ID="$(id -g)" export NEO4J_DOCKER_IMAGE=neo4j:5-community export NEO4J_EDITION=docker_compose export EXTENDED_CONF=yes export NEO4J_ACCEPT_LICENSE_AGREEMENT=yes export NEO4J_AUTH=neo4j/your_password
neo4j.conf 配置文件
# Setting that specifies how much memory Neo4j is allowed to use for the page cache. server.memory.pagecache.size=100M # Setting that specifies the initial JVM heap size. server.memory.heap.initial_size=100M # The behavior of the initial discovery is determined by the parameters `dbms.cluster.discovery.resolver_type` and `dbms.cluster.discovery.endpoints`. # The DNS strategy fetches the IP addresses of the cluster members using the DNS A records. # ### dbms.cluster.discovery.resolver_type=DNS # The value of `dbms.cluster.discovery.endpoints` should be set to a single domain name and the port of the discovery service. # The domain name returns an A record for every server in the cluster when a DNS lookup is performed. # Each A record returned by DNS should contain the IP address of the server in the cluster. # The configured server uses all the IP addresses from the A records to join or form a cluster. # The discovery port must be the same on all servers when using this configuration. # ### dbms.cluster.discovery.endpoints=neo4j-network:5000 # Address (the public hostname/IP address of the machine) # and port setting that specifies where this instance advertises for discovery protocol messages from other members of the cluster. # ### server.discovery.advertised_address=$(hostname -i) # Address (the public hostname/IP address of the machine) # and port setting that specifies where this instance advertises for Raft messages within the cluster. # ### server.cluster.raft.advertised_address=$(hostname) # Address (the public hostname/IP address of the machine) # and port setting that specifies where this instance advertises for requests for transactions in the transaction-shipping catchup protocol. # ### server.cluster.advertised_address=$(hostname) # Enable server-side routing # ###dbms.routing.enabled=true # Use server-side routing for neo4j:// protocol connections. # ###dbms.routing.default_router=SERVER # The advertised address for the intra-cluster routing connector. # ###server.routing.advertised_address=$(hostname) # HTTP Connector # dbms.connector.http.type=HTTP dbms.connector.http.enabled=true dbms.connectors.default_listen_address=0.0.0.0 # #dbms.connector.http.address=0.0.0.0:#{default.http.port} dbms.connector.http.address=0.0.0.0:7474 dbms.connector.http.listen_address=0.0.0.0:7474
Docker-Compose.yml 文件
version: '3.8' # Custom top-level network networks: neo4j-internal: services: server1: # Docker image to be used image: ${NEO4J_DOCKER_IMAGE} # Hostname hostname: server1 # Service-level network, which specifies the networks, from the list of the top-level networks (in this case only neo4j-internal), that the server will connect to. # Adds a network alias (used in neo4j.conf when configuring the discovery members) networks: neo4j-internal: aliases: - neo4j-network # The ports that will be accessible from outside the container - HTTP (7474) and Bolt (7687). ports: - "7474:7474" - "7687:7687" # Uncomment the volumes to be mounted to make them accessible from outside the container. volumes: - /opt/neo4j/neo4j.conf:/conf/neo4j.conf # This is the main configuration file. - /opt/neo4j/data/server1:/var/lib/neo4j/data - /opt/neo4j/logs/server1:/var/lib/neo4j/logs - /opt/neo4j/conf/server1:/var/lib/neo4j/conf - /opt/neo4j/import/server1:/var/lib/neo4j/import #- /opt/neo4j/metrics/server1:/var/lib/neo4j/metrics #- /opt/neo4j/licenses/server1:/var/lib/neo4j/licenses #- /opt/neo4j/ssl/server1:/var/lib/neo4j/ssl # Passes the following environment variables to the container environment: - NEO4J_ACCEPT_LICENSE_AGREEMENT - NEO4J_AUTH - EXTENDED_CONF - NEO4J_EDITION - NEO4J_initial_server_mode__constraint=PRIMARY # Simple check testing whether the port 7474 is opened. # If so, the instance running inside the container is considered as "healthy". # This status can be checked using the "docker ps" command. healthcheck: test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider localhost:7474 || exit 1"] # Set up the user user: ${USER_ID}:${GROUP_ID} server2: image: ${NEO4J_DOCKER_IMAGE} hostname: server2 networks: neo4j-internal: aliases: - neo4j-network ports: - "7475:7474" - "7688:7687" volumes: - /opt/neo4j/neo4j.conf:/conf/neo4j.conf - /opt/neo4j/data/server2:/var/lib/neo4j/data - /opt/neo4j/logs/server2:/var/lib/neo4j/logs - /opt/neo4j/conf/server2:/var/lib/neo4j/conf - /opt/neo4j/import/server2:/var/lib/neo4j/import #- /opt/neo4j/metrics/server2:/var/lib/neo4j/metrics #- /opt/neo4j/licenses/server2:/var/lib/neo4j/licenses #- /opt/neo4j/ssl/server2:/var/lib/neo4j/ssl environment: - NEO4J_ACCEPT_LICENSE_AGREEMENT - NEO4J_AUTH - EXTENDED_CONF - NEO4J_EDITION - NEO4J_initial_server_mode__constraint=PRIMARY healthcheck: test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider localhost:7474 || exit 1"] user: ${USER_ID}:${GROUP_ID} server3: image: ${NEO4J_DOCKER_IMAGE} hostname: server3 networks: neo4j-internal: aliases: - neo4j-network ports: - "7476:7474" - "7689:7687" volumes: - /opt/neo4j/neo4j.conf:/conf/neo4j.conf - /opt/neo4j/data/server3:/var/lib/neo4j/data - /opt/neo4j/logs/server3:/var/lib/neo4j/logs - /opt/neo4j/conf/server3:/var/lib/neo4j/conf - /opt/neo4j/import/server3:/var/lib/neo4j/import #- /opt/neo4j/metrics/server3:/var/lib/neo4j/metrics #- /opt/neo4j/licenses/server3:/var/lib/neo4j/licenses #- /opt/neo4j/ssl/server3:/var/lib/neo4j/ssl environment: - NEO4J_ACCEPT_LICENSE_AGREEMENT - NEO4J_AUTH - EXTENDED_CONF - NEO4J_EDITION - NEO4J_initial_server_mode__constraint=PRIMARY healthcheck: test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider localhost:7474 || exit 1"] user: ${USER_ID}:${GROUP_ID} server4: image: ${NEO4J_DOCKER_IMAGE} hostname: server4 networks: neo4j-internal: aliases: - neo4j-network ports: - "7477:7474" - "7690:7687" volumes: - /opt/neo4j/neo4j.conf:/conf/neo4j.conf - /opt/neo4j/data/server4:/var/lib/neo4j/data - /opt/neo4j/logs/server4:/var/lib/neo4j/logs - /opt/neo4j/conf/server4:/var/lib/neo4j/conf - /opt/neo4j/import/server4:/var/lib/neo4j/import #- /opt/neo4j/metrics/server4:/var/lib/neo4j/metrics #- /opt/neo4j/licenses/server4:/var/lib/neo4j/licenses #- /opt/neo4j/ssl/server4:/var/lib/neo4j/ssl environment: - NEO4J_ACCEPT_LICENSE_AGREEMENT - NEO4J_AUTH - EXTENDED_CONF - NEO4J_EDITION - NEO4J_initial_server_mode__constraint=SECONDARY healthcheck: test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider localhost:7474 || exit 1"] user: ${USER_ID}:${GROUP_ID}
version: '2' services: neo4j: image: docker.io/bitnami/neo4j:5 ports: - '7474:7474' - '7473:7473' - '7687:7687' volumes: - 'neo4j_data:/bitnami' environment: - NEO4J_AUTH=neo4j/bitnami1 volumes: neo4j_data: driver: local
Neo4J 的基础使用
基于 7474 端口的访问
通过远程配置的IP访问与配置,特别需要注意的就是对应的Auth这块,从而基于对应的外部IP才可以访问 比如 http://192.168.1.217:7474/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本