我想更好地理解RabbitMQ、MongoDb、Node.Js和Hadoop等技术如何结合到一个系统架构中,以提供高可用性/可伸缩性/性能。
有没有人能帮我找到这类信息的好来源?
编辑
诚然,这不是一个很好的问题,我应该澄清一下。我不是在寻找上述堆栈中任何一种技术的细节,我对每种技术都有一定的了解,并对如何使用它们有一定的了解。我正在寻找的是一个系统的规范,它利用了message queue/NoSQL/Map reduce/event driven lang,这样我就可以更好地理解它们如何协同工作来提供高可用性/可伸缩性/性能。
发布于 2012-02-16 08:01:54
如果我是你,我会先关注整个系统的设计,然后再关注具体的技术。RabbitMQ将消息从一个地方传输到另一个地方,MongoDB存储文档,Node.JS处理HTTP请求,Hadoop存储和处理数据。这些系统中的每一个都有各种各样的竞争对手。
我会去real life architectures from the highscalability.com blog看看。我还会查看the CAP paper,它列出了“可用”的确切含义。
发布于 2012-02-16 07:50:06
看起来您是在要求在“为什么我应该使用这个而不是LAMP/Ruby/Python/$YourOldStackHere”的上下文中对NodeJS进行一般的介绍。
我唯一能建议的是:看一大堆nodeJS videos,阅读http://nodebeginner.org,然后开发一个简单的应用程序来感受这一切。
至于它们是如何“结合到一个系统架构中以提供高可用性/可伸缩性/性能”,好吧,它们符合你的预期;Node提供了一种快速的事件驱动语言,memcache/redis/mongo提供了(非)持久化的键/值存储,它去掉了SQL的关系方面,而许多SQL驱动的解决方案实际上并不需要它,并用它来换取速度。
“高可用性/可伸缩性/性能”归根结底就是技术在硬件上的速度。快速的东西更具可伸缩性、可用性和性能。NodeJS是建立在V8之上的,这是最快的JS引擎,但如果你拿它来和PHP相比,那就没什么意义了。
快速的谷歌肯定会提供一些"node vs $YourStack“的分析。
https://stackoverflow.com/questions/9303093
复制相似问题