当使用SpringRestGraphDatabase
类时,SDN不允许您配置HA服务器列表以提出请求。这意味着如果你想管理一个服务器集群,那么你需要将它们放在一个入口点后面。通常情况下,你要做的就是设置你的集群,然后在它前面粘贴一个负载平衡器,并让负载平衡器处理读取请求到它想象中的任何主/从节点(这可能只是循环),并将请求写入主节点。有一些文档可以配置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"/>
这假定您有运行超过1有ha.server_id
值等。一旦你的集群运行,那么你可以在新的情况下,降(用于水平缩放)新HA节点,只要是ha.server_id值另两台服务器不同。
关于水平缩放的一个重要提示是,您仍然希望仅通过主设备(您可以写入从设备,但速度较慢)写入数据,这需要在负载均衡器上面朝您的应用程序或者在运行SDN一些定制的代码来延迟从服务器上的写操作。请参阅此question了解SDN的注意事项并了解主/从设置。
设置您的独立HA节点记录在此tutorial中。 关于Neo Site的可用参数(配置图)有很多文档。
您是否打算将您的Spring应用程序用作Neo4J集群中的服务器? – JohnMark13 2014-10-07 11:59:49
不,我正在谈论我的neo4j数据库的水平缩放,我可以有多个数据库服务器,如何在SDN中配置它们? – 2014-10-07 12:13:00
如果SDN不是群集的一部分,那么它不知道群集,您需要为它提供一个单独的(负载平衡器)端点来定位。我会在回答中更清楚地说明这一点。 – JohnMark13 2014-10-07 12:30:27