【问题标题】:Scaling Databases and Servers扩展数据库和服务器
【发布时间】:2013-09-13 00:37:20
【问题描述】:

如果您的服务器和数据库流量过大,比如说一个简单的在线游戏,您会如何考虑扩展服务器和数据库?

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

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

谢谢:)

【问题讨论】:

    标签: database sharding horizontal-scaling


    【解决方案1】:

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

    首先,确保您有一个“瓶颈”。瓶颈不同于“缓慢”。

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

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

    对于水平缩放,有很多选择。您可以在应用程序中自己对数据库进行分片,但这并不总是那么容易,并且通常会产生长期成本,例如您应该考虑的维护成本。分片可能会限制您可以对数据库运行的查询类型。我相信从长远来看,分片会适得其反。

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

    这里有几个你应该考虑阅读的参考资料。

    sharding at pinterest

    sharding at netlog

    this question on stackoverflow

    Sharding for startups

    未来打样是个好主意,最好提前计划。充分披露,鉴于我工作的公司,我对这个问题有偏见。

    【讨论】:

    • 非常感谢您的洞察力,现在阅读参考资料,非常感谢。 :)
    猜你喜欢
    • 1970-01-01
    • 2021-03-09
    • 2021-08-07
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多