我将在接下来的几个月推出我的应用程序,这基本上是社交网络的变体,但有目的。现在我没有包含任何高可用性因素或任何形式的群集或复制。最初我以为我会从一台服务器开始,因为我会有最小的请求,然后根据流量和请求扩展到一个集群。
但是在负载测试时,我看到我的数据库因空间问题而崩溃,我花了一些时间来恢复它。因此,为了使我的应用程序成为一个问题,如果我的数据库崩溃,损坏或出于任何其他原因,我不想丢失我的数据库或任何数据。
我同时使用MySQL和Neo4j,我的应用程序试图让它们保持同步。我很想在三个Amazon实例上分别使用Galera MySQL集群和Neo4j HA集群来实现MySQL和Neo4j集群。虽然考虑到我在开始时没有足够的流量并且我的大部分资源都是空闲的(并且很昂贵),但这似乎是一种矫枉过正。
我准备付出额外的努力,但是我想要聪明的钱!如果在初始阶段我应该去HA或承担风险并对备份感到满意并且因为失败而对数据丢失感到满意,请告诉我。
答案 0 :(得分:3)
高可用性是可靠基础设施的一部分,但我将其列在优先级列表上,而不是投资于自动备份,部署和监控。对我而言,您的经验和问题的关键部分是,"我看到我的数据库因空间问题而崩溃,我花了一些时间来恢复它。"这种情况发生在测试中,因此我不希望您拥有一切,但在理想配置的生产环境中,您提前了解您的空间问题并按照您的条款解决。如果它确实失败了,你就无法恢复,你恢复,这将比其他任何事情都更加不便。
由于您担心正常运行时间而不是性能,所以您现在真正需要关注的是应用的正常运行时间。如果您只有一台服务器并且监控通知您需要短暂停机的错误 - 可能需要升级硬件,迁移到新存储,安装关键补丁 - 可以在短时间内离线?
如果是,请暂时跳过HA并确保已准备好所有主动层。也许可以投资一些资金,这些资金可以用于HA环境中的服务器上的咨询服务,如果你担心某些问题,那么你的环境就会变得坚固。
如果没有,我想你有答案了!