【问题标题】:Architecture with Neo4j and Mysql for social networking website用于社交网站的 Neo4j 和 Mysql 架构
【发布时间】:2014-02-12 17:18:01
【问题描述】:

我们正在设计具有高度互连数据集的社交网站架构。 (就像用户可以关注其他用户、地点、兴趣。以及基于此的推荐)。馈送将来自直接跟随的实体以及间接连接的实体。 (地点和兴趣点可以像层次结构一样与其他地点和兴趣点相连)。

现在我们计划使用 Neo4j 来存储实体之间的复杂关系及其 ID。我们希望将该实体的实际数据存储在 MySQL 中。我们希望仅将图形数据库内容保持在最小大小(但具有整个关系(这对提要非常重要)),以便我们可以在运行时将整个图形加载到 RAM 中。 (内存中的整个图形用于快速检索内容)。一旦我们从 Neo4j 获得对象的 ID,我们就可以在 MySQL 上运行普通的 SQL 查询。

我们正在使用 PHP 和 MySQL 的组合。现在我们了解到 Neo4j 如果以嵌入式方式实现,则适用于复杂的算法和快速的数据检索。现在我们需要将 Neo4j 与 PHP 集成。我们计划为 Neo4j 实现创建 RESTful Java API(或 SOAP)。通过这种方式,我们可以做到。

我们将拥有至少 100 万个节点和 1000 万个关系。 Neo4j 可以通过适当的索引在 1-5 秒内遍历 100 万个节点而不会出现性能故障吗?

现在,如果这行得通,请指导我。任何以前已经做过这种事情的人。您在这方面的任何一点指导都会对我非常有用。

谢谢

P/s:我附上一些项目关系图,让你更了解。请询问您是否需要我的更多意见。

https://drive.google.com/file/d/0B-XA2uVZaFFTWDdwUEViZ2ZsbkE/edit?usp=sharing

https://drive.google.com/file/d/0B-XA2uVZaFFTTGV4d1IySXlWRGs/edit?usp=sharing

【问题讨论】:

    标签: java mysql database-design architecture neo4j


    【解决方案1】:

    我前段时间发布了一个非托管扩展,它代表一种活动流。随意看一下,您只需通过简单的 http-REST 调用就可以从 PHP 中使用它。

    https://github.com/jexp/neo4j-activity-stream

    领域模型的图片在这里:

    【讨论】:

      【解决方案2】:

      是的,1000 万个关系和 100 万个节点即使保存在内存中也应该没有问题。为了最快的检索,我会用 Java 构建一个服务器扩展并使用嵌入式 API 甚至 Cypher,并公开一个您的 PHP 环境与之通信的自定义 REST 端点,请参阅http://docs.neo4j.org/chunked/milestone/server-plugins.html

      【讨论】:

      • 谢谢彼得。我想我应该开发自定义 JAVA API。你以前做过吗?以及将其与 REST 集成的体验如何?
      • 解析100万个节点需要多少时间?谢谢
      • 使用 Java 的经验很棒,是的,我已经做到了,因为我编写了部分代码;)如果您有问题,请告诉我们。
      猜你喜欢
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多