SDN не позволяет вам настроить список серверов HA для запросов, используя класс SpringRestGraphDatabase
. Это означает, что если вы хотите управлять кластером серверов, вам необходимо вывести их за одну точку входа. Обычно то, что вы делаете, - это настроить свой кластер, а затем привязать к нему балансировщик нагрузки и позволить балансировщику нагрузки обрабатывать запросы на чтение маршрутов в зависимости от того, какой узел хозяин/ведомый он представляет (это может быть просто круговой режим) и писать запросы на главный узел. Существует несколько документов для настройки HAProxy для достижения этого here.
После того, как вы запускаете кластер и запросы маршрутизации балансировки нагрузки, вам необходимо изменить конфигурацию SDN, чтобы настроить балансировщик нагрузки, что означает замену http://localhost:7474/db/data
на адрес вашего балансировочного устройства.
Оригинальный ответ - SDN, как встроенный HA сервер
Если предположить, что ваше приложение SDN будет один из серверов в кластере, то вам необходимо создать HighlyAvailableGraphDatabase, который использует несколько иную картину:
<util:map id="config">
<entry key="ha.server_id" value="1"/>
<entry key="ha.initial_hosts" value="yourotherserver1:5001,yourotherserver2:5001"/>
</util:map>
<bean id="graphDbFactory"
class="org.neo4j.graphdb.factory.HighlyAvailableGraphDatabaseFactory"/>
<bean id="graphDbBuilder" factory-bean="graphDbFactory"
factory-method="newHighlyAvailableDatabaseBuilder">
<constructor-arg value="/path/to/local/filesystem/store"/>
</bean>
<bean id="graphDbBuilderFinal" factory-bean="graphDbBuilder" factory-method="setConfig">
<constructor-arg ref="config"/>
</bean>
<bean id="graphDatabaseService" factory-bean="graphDbBuilderFinal"
factory-method="newGraphDatabase" destroy-method="shutdown" />
<neo4j:config graphDatabaseService="graphDatabaseService"
base-package="your.graph.package"/>
Это предполагает, что у вас есть два других серверов, работающих Neo HA узлов, которые имеют ha.server_id
значения, кроме 1. После того, как кластер работает, то вы можете оставить в новых случаях (для горизонтального масштабирования) до тех пор, как это значение ha.server_idотличается.
Важным примечанием о горизонтальном масштабировании является то, что вы все еще хотите нажимать на запись только с помощью ведущего устройства (вы можете писать на подчиненные устройства, но оно медленнее), что требует какой-либо умной конфигурации на балансировщике нагрузки, выходящей из вашего приложения или, когда запустив SDN на определенный код, чтобы отложить запись на ведомых устройствах. См. Это question для примечания к SDN и понимания настройки ведущего/ведомого.
Настройка автономных узлов HA задокументирована в этом tutorial. Существует много документации по доступным параметрам (для конфигурации карты) на Neo Site.
Намерены ли использовать приложение Spring в качестве сервера в кластере Neo4J? – JohnMark13
нет, я говорю о горизонтальном масштабировании моей базы данных neo4j, где я могу иметь несколько серверов баз данных, как их настроить в SDN ?? –
Если SDN не является частью кластера, то он не знает о кластере, и вам нужно дать ему отдельную конечную точку балансировки нагрузки для цели. Я сделаю эту часть более ясной в своем ответе. – JohnMark13