web-dev-qa-db-fra.com

Création de plusieurs bases de données sur un serveur à l'aide de Neo4j

Comment créer plusieurs bases de données sur un serveur en utilisant neo4j? J'ai plusieurs clients et je souhaite séparer toutes les informations client dans une base de données différente pour éviter les fuites de données.

44
Kelly Watson

Vous devez disposer de plusieurs installations Neo4j avec différentes configurations de port dans conf/neo4j.properties et conf/neo4j-server.properties.

Vous pouvez également utiliser un outil de virtualisation ou de conteneur comme http // docker.io pour une approche plus sophistiquée.

36
Stefan Armbruster

ou ajoutez un label spécial à chaque nœud pour un client, par exemple :ClientName. ou créez un nœud racine pour chaque base de données clients et commencez toujours l'interrogation au premier nœud.

dans neo4j db, vous pouvez avoir des sous-graphiques séparés. si vous programmez bien votre code, il ne devrait y avoir aucune raison d'avoir de telles fuites.

8
ulkas

comme @ stefan-armbruster l'a mentionné, il pourrait être utile d'utiliser plusieurs instances de conteneur Docker Neo4j pour exécuter plusieurs bases de données

Peut être en dessous du fichier de composition docker devrait être en mesure de vous aider à le faire

version: '2'
services:
  neo4j:
    image: neo4j:latest
    network_mode: Host
    restart: always
    environment:
      - NEO4J_AUTH: neo4j/neo4j
    cap_add:
      - SYS_RESOURCE
    ports:
      - "7474:7474"
      - "7687:7687"
    volumes:
      - $HOME/neo4j/data:/data

une fois que vous avez enregistré ce qui précède dans un docker-compose.yml, exécutez la commande ci-dessous

docker-compose up 

si vous voulez exécuter en arrière-plan

docker-compose up -d 

Vous devriez maintenant pouvoir accéder à la base de données en tant que http://localhost:7474, si vous utilisez docker-machine, vous devrez utiliser l'adresse IP de docker-machine pour accéder à la base de données

En conservant plusieurs fichiers de composition de docker avec différents ports, vous pouvez gérer plusieurs bases de données, ce n'est pas seulement pour neo4j, vous pouvez le faire pour tout type de bases de données (Mongo, Redis, RabbitMQ etc.,)

pour spécifier un autre fichier de composition docker, essayez la commande ci-dessous

docker-compose -f <your docker compose file name> 
4
Basav