neo4j vs“传统”RDBMS和; Memcached / Messaging / Redis解决方案

时间:2013-03-19 02:22:05

标签: ruby-on-rails redis rabbitmq neo4j news-feed

我正在进行社交网络原型设计(使用ROR 3)并决定查看Neo4j,虽然它看起来很棒,但我对设计方面的缩放和性能提出了疑问。

我研究了Etsy如何整合和活动Feed(请参阅http://www.slideshare.net/danmckinley/etsy-activity-feeds-architecture),并了解消息队列如何将活动分散出来(例如分享图片并将此活动提供给您的500个左右的朋友他们的新闻提要)。我也理解如何缓存新闻源(memcache)以及如何对Redis执行查找..

总而言之,似乎要制作一个可以很好地扩展的高性能活动源(和一般的社交网络)常见的模式是使用分片,水平缩放,memcache,rabbitmq,redis,Mongodb,innodb(mysql)等等 - 所有这些都是为了弥补高容量,磁盘读取等。但这在设计方面有相当大的开销 ..

Neo4J能否至少在早期消除对这种安排的需求?我的意思是它是如此之快以至于我不需要为扇出和消息传递设置消息队列,不需要为用户执行的每个动作设置“活动”缓存,并且可以使用它来处理订购和存储消息?可以使用这样的系统创建像Facebook这样的新闻源,还是仅限于基本状态更新的高性能活动源?

如果这些问题过于宽泛,请允许我以不同的方式提出问题:我可以使用neo4j编写facebook或twitter,并且无需使用消息排队来扇动更新(相反,我希望获得更新的实时更新。 fly),新闻源的memcache和缓存的活动源对象?或者我会发现自己做同样的事情甚至更多来处理每秒数百个请求?

我问这是因为如果能够确实处理大量产品而不必使用Etsy,Twitter和Facebook用来保持高性能的技巧,那么使用Neo4J会节省相当多的时间。

1 个答案:

答案 0 :(得分:2)