扩展数据库和服务器

时间:2013-09-13 00:37:20

标签: database sharding horizontal-scaling

如果你的服务器和数据库的流量太大了,让我们说一个简单的在线游戏,你会考虑如何扩展服务器和数据库?

我的想法是面向未来,并水平扩展服务器和数据库。我知道这会带来更大的复杂性,但我觉得这是最好的选择。

有人可以向我提出他们的想法吗?您如何识别数据库中的瓶颈和问题?在进入和扩展之前要寻找的主要内容是什么? 你会如何扩展服务器?你会如何扩展数据库?

谢谢:)

1 个答案:

答案 0 :(得分:1)

好问题。我建议你做几件事。

首先,确保您有“瓶颈”。瓶颈与“慢”不同。

您的应用程序在任何时候都能正常运行吗?如果没有,你有一个缓慢的问题。如果它在大多数情况下运行良好,但在某些情况下(负载,数据大小......),你会遇到瓶颈。

首先尝试改善应用程序中明显的瓶颈,无论您使用数据库做什么,它们都会为您提供帮助。

对于水平缩放,有许多替代方案。您可以在应用程序中自己对数据库进行分片,但这并不总是很容易,并且通常需要考虑维护等长期成本。此外,分片可能会限制您可以对数据库运行的查询类型。我认为,从长远来看,分片是适得其反的。

有一些“透明的水平横向扩展”解决方案,你也可以检查它们。这些解决方案为您提供了横向扩展的所有细微差别,并且基于类似于并行数据库(MPP数据库)的技术。

以下是您应该考虑阅读的几个参考资料。

sharding at pinterest

sharding at netlog

this question on stackoverflow

Sharding for startups

未来打样是一个好主意,更好地提前计划。完全披露,鉴于我所在的公司,我对这个问题有偏见。