Как создать несколько баз данных на одном сервере с помощью 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>