【问题标题】:Custom Neo4j High Availability自定义 Neo4j 高可用性
【发布时间】:2014-12-29 14:54:33
【问题描述】:

我很好奇是否可以使用 Neo4j 企业版不使用创建 Neo4j 的 HA 集群。原因是企业许可证可能有点贵。有没有人做过某种工作?

【问题讨论】:

  • 我不确定,所以我不会发布答案,但有关如何设置 HA 集群的文档指定您必须从企业版开始。所以我认为它需要企业版(但不确定)。 neo4j.com/docs/stable/ha-setup-tutorial.html
  • 是的,HA 仅在企业版中可用。对于 PHP 开发人员,NeoClient 通过 Neo4jCommunity 提供了复制模式和从属回退功能。 github.com/neoxygen/neo4j-neoclient
  • 我会直接咨询 Neo Technology,因为这是关于许可而不是编程。他们对个人和初创公司有特殊的licensing 安排,因此,您应该再次直接与他们交谈。
  • 是的,您应该在关闭它之前先询问一下,有很多可用的选项。

标签: neo4j cluster-computing high-availability


【解决方案1】:

简短的回答是

来自Neo4j docs

高可用性功能仅在 Neo4j 企业版中可用

但是,话虽如此 - 可以使用其他替代方案。

我使用了eventual consistency 模式来制定 HA 解决方案。该解决方案不支持ACID,但这是我的要求所需要的。

该解决方案是基于队列的解决方案。所有修改更改(即修改数据库的查询)都放置在分布式队列中。集群中的每个数据库实例前面都有一个工作进程,它从队列中读取消息并更新数据库。

用户会话是粘性的,因此用户在整个会话期间(或直到服务器出现故障/重新启动)从同一个数据库中读取。这使得用户体验更好,因为当数据库之间的数据不一致时(通常只是一两秒),用户仍然可以获得已知数据。

【讨论】:

  • 如果你在某处写博客会很酷,可能对其他人也很有趣。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 2021-10-08
  • 2014-08-01
  • 1970-01-01
  • 2015-06-06
  • 2014-12-07
相关资源
最近更新 更多