ruby-on-rails - neo4j 与 "traditional"RDBMS 和 Memcached/消息传递/Redis 解决方案

标签 ruby-on-rails redis rabbitmq neo4j feed

我正在制作一个社交网络原型(prototype)(使用 ROR 3),并决定查看 Neo4j,虽然它看起来很棒,但我对设计方面的扩展和性能有疑问。

我研究了 Etsy 如何整合事件提要(请参阅 http://www.slideshare.net/danmckinley/etsy-activity-feeds-architecture),并了解消息队列如何分散事件(例如分享图片并在新闻中向您的 500 名左右 friend 提供此事件)喂养)。我还了解如何缓存新闻源 (memcache) 以及如何针对 Redis 执行查找..

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

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

如果这些问题太宽泛,让我换个方式问:我可以使用 neo4j 编写 facebook 或 twitter 并消除消息队列来扇出更新的需要(相反,我想在 facebook 或 twitter 上获取实时更新流) Fly)、用于新闻源的内存缓存以及缓存的事件源对象?或者我会发现自己做同样的事情甚至更多来处理每秒数百个请求?

我问这个问题是因为,如果 Neo4J 确实可以处理大量数据,而无需使用 Etsy、Twitter 和 Facebook 用来保持高性能的技巧,那么使用 Neo4J 会节省相当多的时间。

最佳答案

关于ruby-on-rails - neo4j 与 "traditional"RDBMS 和 Memcached/消息传递/Redis 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15490477/

相关文章:

javascript - Redis:使用列表保存 Javascript 对象

erlang - RabbitMQ 通用服务器rabbit_disk_monitor 终止/eheap_alloc : Cannot allocate 229520 bytes of memory (of type "old_heap")

jms - RabbitMq : Create queue dynamically

node.js - Redis 使用 node.js 占用内存

php - RabbitMQ 等待多个队列完成

ruby-on-rails - 使用 Rails 创建 API

ruby-on-rails - 为什么我不能在 RSpec 功能测试中提高 Mongoid::Errors::DocumentNotFound?

ruby-on-rails - 如何将订阅者关联到事件

ruby-on-rails - 发送邮件与 SMTP

go - redis-cli 如何对在 HLL 或位图上执行 GET 时返回的字符串值进行编码?