我希望使用neo4j数据库在我的应用程序中使用此结构。
这里我将我的应用程序部署在三个不同的服务器上,每个服务器都有自己的嵌入式neo4j数据库。
我希望所有数据库都自动同步。
我的大尺寸数据应用程序没问题吗?
我正在使用Spring数据neo4j,如何在SDN中配置这个结构。
我是否需要neo4j的企业版。
可以使用的其他框架/技术吗?
我几乎完成了这样的结构
我的网络应用程序部署在
上localhost:8088 xml-> ha.server_id = 1和dbptah = E:/ data1
localhost:8089 xml-> ha.server_id = 2和dbptah = E:/ data2
localhost:8090 xml-> ha.server_id = 3和dbptah = E:/ data3
Neo4j服务器正在运行:
localhost:7474 properties-> ha.server_id = 1和dbptah = E:/ data1
localhost:7475 properties-> ha.server_id = 2和dbptah = E:/ data2
localhost:7476 properties-> ha.server_id = 3和dbptah = E:/ data3
现在当我运行我的网络应用程序时,它给了我错误:
Caused by StoreLockException: Unable to obtain lock on store lock file:
似乎它无法访问neo4j服务器正在使用的目录,那么我如何在我的网络应用程序中配置xml?
答案 0 :(得分:2)
在回答您的第一个问题时,是的,使用SDN运行Neo4j-enterprise(HA)非常适合在负载均衡器后面放置大量数据的项目。我知道有一个问题,那就是SDN还没有被开发用来理解HA。这给我带来了一个问题,因为某些操作只能在主节点上执行(我的意思是仅),所以你必须对它进行编码。
一旦您了解了如何,使用HA的SDN很容易配置!这是我使用的代码,最初是从Stefan Armbruster借来的。
<util:map id="config">
<entry key="ha.server_id" value="1"/>
<entry key="ha.initial_hosts" value="thisserver.com:5001,yoursecondserver.com:5001,yourthirdserver.com:5001"/>
</util:map>
<bean id="graphDbFactory" class="org.neo4j.graphdb.factory.HighlyAvailableGraphDatabaseFactory"/>
<bean id="graphDbBuilder" factory-bean="graphDbFactory" factory-method="newHighlyAvailableDatabaseBuilder">
<constructor-arg value="/tmp/neo4j"/>
</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" />
在顶部的地图中,您可以在文档here和here中找到您可能找到的任何设置。群集运行后,您可以删除新节点,要求ha.server_id值是唯一的,但initial_hosts不需要完全填充。如果为ha.server和ha.cluster_server属性设置值,您的生活将更加简单。
对于性能,您需要尝试最小化Slave节点上的写入,有一些关于如何在Neo Site上实现此目的的优秀文档,基本上配置负载均衡器以根据来自的响应做出路由决策特殊的HA端点。
/db/manage/server/ha/master
/db/manage/server/ha/slave
/db/manage/server/ha/available
不幸的是我无法使用它,因此对于非关键写入,我将它们发布到仅在主节点上处理的消息队列。
HA会自动保持您的数据同步,并且也会启用实时备份,当Master死亡以宣传另一个集群成员时,将会进行选举。由于Neo离开了ZooKepper,因此设置起来很简单。
现在,艰难的部分。授权。 HA是企业,据我了解APGL的应用程序,您需要购买许可证或开源代码。网站personal
上还有另一种许可模式,允许您和一个小团队(+2人)制作可能需要高达100000美元的软件,但您只需支持SO即可获得支持......
任何其他框架,可能,但不是我熟悉的 - Graphene可能是一个开始调查的好地方,但是如果你想卸载扩展责任。