Создание нескольких баз данных на одном сервере с использованием Neo4j

Как создать несколько баз данных на одном сервере с помощью neo4j? У меня несколько клиентов, и я хочу разделить всю информацию клиента в другую базу данных, чтобы избежать утечки данных.

Ответ 1

Вам нужно иметь несколько установок Neo4j с различными конфигурациями портов в conf/neo4j.properties и conf/neo4j-server.properties.

В качестве альтернативы вы можете использовать некоторый инструмент виртуализации или контейнера, например http//docker.io, для более сложного подхода.

Ответ 2

или добавить специальный label к каждому node для клиента, например. :ClientName. или создать корень node для каждой базы данных клиентов и всегда начинать запрос с первого node.

в neo4j db, вы можете иметь отдельные подграфы. если вы хорошо программируете свой код, не должно быть причин иметь такие утечки.

Ответ 3

поскольку @stefan-armbruster упомянул, что было бы неплохо использовать несколько экземпляров контейнера докеров Nero4j для запуска нескольких баз данных

Может быть, ниже файла компоновки докеров должен быть в состоянии помочь вам в этом

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

после того, как вы сохранили вышеуказанный файл docker-compose.yml, выполните команду ниже

docker-compose up 

если вы хотите работать в фоновом режиме

docker-compose up -d 

Теперь вы должны иметь доступ к базе данных как http://localhost:7474, если вы используете докер-машину, вам нужно будет использовать IP-адрес док-машины для доступа к базе данных

Поддерживая несколько файлов, содержащих докеры с различными портами в них, вы можете поддерживать несколько баз данных, это не только для neo4j, вы можете сделать это для любых типов БД (Mongo, Redis, RabbitMQ и т.д.)

для указания файла компоновки docker, попробуйте выполнить команду

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