关于neo4j HA设置的查询

时间:2015-11-19 19:41:17

标签: neo4j

您好我是HA概念和Neo4j HA的新手。我已经浏览了Neo4j Docs,但我仍然有几个问题出现在我脑海中。

  1. 当使用php脚本通过REST连接到Neo4j数据库时,我应该为群集使用什么ip。群集是否有通用的IP?
  2. 我问这个是因为如果主人失败了新的neo4j实例成为主人。我的脚本应该如何连接到新主服务器。我应该使用第三方软件指向新的主人。可以通过一个普通的集群ip自动发生neo4j。请原谅我,如果我的概念很弱,只需要一些指导。

    1. 如何仅将所有读取和写入指向主服务器,并仅将从服务器用于复制。或者这是默认设置。我看到多个阅读&多个写场景让我感到困惑。
    2. 是否有任何文档/资料可以进一步解释如何设置仲裁实例,或者我应该按照http://neo4j.com/docs/stable/ha-setup-tutorial.html中的说明配置3节点Neo4j HA,并为其中一个实例运行以下命令 - < / p>

      neo4j_home$ ./bin/neo4j-arbiter start

    3. 感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:3)

欢迎来到Neo4j用户社区;)

首先,我建议您查看neo4j-php-client,因为它支持Neo4j HA群集,它可以解决您的问题。而不是找到自己的解决方案。

  1. 最佳做法是使用Neo4j HA群集前面的某种负载平衡。以下是关于它的精彩文章:http://blog.armbruster-it.de/2015/08/neo4j-and-haproxy-some-best-practices-and-tricks/

  2. 您可以在基于HTTP方法的负载均衡器级别上执行此操作(GET重定向到从属; POST,PUT,DELETE重定向到主服务器)。但是Cypher端点存在问题,因为它只使用POST方法。您可以使用其他HTTP标头来区分读取和写入请求,但该逻辑必须位于您的应用程序中。

  3. 首先,从官方文档开始就足够了。

  4. 资源

答案 1 :(得分:1)

正如我的朋友MicTech所说,通常我们在Neo4j上使用HAProxy作为负载均衡器。

使用提到的php客户端,你有一个很好的配置机制,允许:

  1. 使用HA Proxy时,请定义读/写查询,以便自动为http请求添加标头。标题也是可配置的。

  2. 不使用HAProxy时,您可以在客户端设置中定义所有neo4j实例并激活High-Availibility扩展(仅在启用缓存时有效)。因此,当主服务器关闭时,客户端将自动尝试检测新选择的主服务器并重写缓存中的连接配置以进一步请求。

  3. 我尽量使README尽可能好,如果有些东西丢失,请阅读它并在存储库中打开问题。

    https://github.com/graphaware/neo4j-php-client