我将在接下来的几个月内推出我的应用程序,它基本上是社交网络的一个变体,但有一个目的。现在我没有包括任何高可用性因素或任何形式的集群或复制。最初我以为我会从一台服务器开始,因为我的请求最少,然后根据流量和请求扩展到一个集群。
但是在负载测试时,我发现我的数据库因空间问题而崩溃,我花了一些时间来恢复它。因此,为了让我的应用程序持续运行,如果我的数据库崩溃、损坏或任何其他原因,我不想丢失我的数据库或任何数据。
我同时使用 MySQL 和 Neo4j,我的应用程序试图使它们保持同步。我很想在三个 Amazon 实例上分别使用 Galera MySQL 集群和 Neo4j HA 集群实现 MySQL 和 Neo4j 集群。考虑到一开始我不会有足够的流量,而且我的大部分资源都会闲置(而且很昂贵),这似乎有点矫枉过正。
我准备付出额外的努力,但在金钱方面我想变得聪明!请让我知道在初始阶段我是否应该选择 HA 或冒险并满足于备份并满足于因故障而丢失的数据。
最佳答案
高可用性是可靠基础架构的一部分,但我认为它在我的优先级列表中比投资自动备份、部署和监控要低得多。对我来说,你的经历和问题的关键部分是,“我看到我的数据库因空间问题而崩溃,我花了一些时间来恢复它。”这发生在测试中,所以我不希望您一切顺利,但在理想配置的生产环境中,您会提前了解您的空间问题并根据您的条件解决它们。如果它确实出现故障,您将无法恢复,您将恢复,这将带来比其他任何事情都更大的不便。
由于您担心的是正常运行时间而不是性能,因此您现在真正需要关注的是应用的正常运行时间预期。如果您只有一台服务器并且监控通知您需要短暂停机的错误——也许您需要升级硬件、移动到新存储、安装关键补丁——短时间离线是否可以接受?
如果是这样,请暂时跳过 HA,并确保您已准备好所有主动层。如果担心您遗漏了什么,也许可以投资一些资金用于 HA 环境中的服务器,让顾问使您的环境坚如磐石。
如果没有,我想您已经有了答案!
关于mysql - 如果担心数据丢失,低预算的新生应用程序是否需要高可用性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27385072/