我想更好地了解RabbitMQ,MongoDb,Node.Js和Hadoop等技术如何融合到系统架构中,以提供高可用性/可扩展性/性能。
任何人都可以指导我找到这类信息的良好来源吗?
修改
不可否认,这不是一个很好的问题,我应该澄清一下。我不是在寻找上述堆栈中的任何技术细节,我了解它们各自做了什么以及如何使用它们的一些知识。我正在寻找的是一个利用消息队列/ NoSQL / Map reduce / event driven lang的系统规范,这样我就能更好地理解它们如何协同工作以提供高可用性/可伸缩性/性能。
答案 0 :(得分:4)
如果我是你,我会专注于整体系统设计,然后再关注特定技术。 RabbitMQ将消息从一个地方传送到另一个地方,MongoDB存储文档,Node.JS处理HTTP请求,以及Hadoop存储&处理数据。每个系统都有各种竞争对手。
我会查看real life architectures from the highscalability.com blog。我还会查看the CAP paper,其中列出了“可用”的含义。
答案 1 :(得分:2)
好像你要求在“我为什么要使用它而不是LAMP / Ruby / Python / $ YourOldStackHere”的上下文中对NodeJS进行一般性介绍
我唯一可以建议的是:观看一堆nodeJS videos,阅读http://nodebeginner.org,并开发一个简单的应用程序来感受这一切。
就他们如何“融入系统架构以提供高可用性/可扩展性/性能”而言,它们非常符合您的期望; Node提供了一种快速的事件驱动语言,memcache / redis / mongo提供了一个(非)持久性键/值存储,它删除了许多SQL驱动的解决方案实际上不需要的SQL的关系方面,并将其交换速度。 / p>
“高可用性/可扩展性/性能”都归结为技术对硬件的速度有多快。快速的东西更具可扩展性,可用性和高性能。 NodeJS是基于V8构建的,这是最快的JS引擎,但如果你比较PHP,这并不意味着什么。
快速谷歌肯定会提供一些“节点与$ YourStack”的分析