【发布时间】:2014-04-19 09:49:15
【问题描述】:
如果多个用户尝试访问 Web 应用程序中的相同数据会发生什么情况。 (例如,500 或 1000 个用户将导致应用程序崩溃。
对于设计n 个用户可以同时访问的应用程序,最佳解决方案是什么。
什么是分布式数据库?
【问题讨论】:
标签: web-applications architecture scalability social-networking distributed-system
如果多个用户尝试访问 Web 应用程序中的相同数据会发生什么情况。 (例如,500 或 1000 个用户将导致应用程序崩溃。
对于设计n 个用户可以同时访问的应用程序,最佳解决方案是什么。
什么是分布式数据库?
【问题讨论】:
标签: web-applications architecture scalability social-networking distributed-system
回答您的第一个问题: (From here.)
同时允许多个用户的两个重要机制,将 是Web缓存和负载平衡。如这些维基百科中所述 文章:
http://en.wikipedia.org/wiki/Web_cache http://en.wikipedia.org/wiki/Load_balancing_(computing)
仅当超过可用于处理请求的线程数并且服务器上的内存使用过多时,应用程序才会崩溃。
您的第二个查询是我们作为 Web 开发人员日常面临的一个非常简单的问题,但恐怕没有一个步骤可以确保 Web 应用程序的高可用性.要回答这个问题,我建议您首先了解缩放(应用程序)的概念。
您可以通过查看this SlideShare presentation 找到有关 Web 应用程序可扩展性的更多信息。它非常清楚地显示了问题和可能的解决方案。
关于您的第三个查询,分布式数据库是一种系统,其中大部分数据存储在不同的磁盘上(分为不同的物理磁盘 - 碎片或复制以实现冗余 - 复制)。数据库管理系统负责访问正确的磁盘以获取任何特定信息。
将大部分相同的数据放在不同的磁盘上,以确保大量请求不会导致瓶颈。
但是,即使这听起来很简单,但当数据库大小增加时(例如 Twitter 的 DB 或 FB 的 DB),实际实现会复杂得多。每当添加新信息时,数据库管理系统需要确保它在所有其他磁盘上得到更新。 (复制)。
执行此操作的更简单(且速度较慢)的方法是偶尔复制所有磁盘(复制)。
分布式数据库管理系统进一步分为两大子类:
【讨论】: