现在我们的设置是 CloudFlare > 1x HAProxy(达拉斯,德克萨斯州),3x 应用程序服务器(达拉斯,德克萨斯州),Galera 多主集群(达拉斯,德克萨斯州)中的 3x MariaDB 节点。应用程序服务器会自动水平缩放以处理向它们抛出的任何流量。HAProxy 和数据库服务器在需要时扩展。应用程序服务器还维护单独的 SQL 读取缓存以减轻数据库上的负载。
我们的主要卖点是无论发生什么情况都保持我们的产品在线,因为我们的解决方案迎合了政府的紧急服务,而且由于我们是一家初创公司,我们的预算非常紧张。
出乎意料的是,我们当前的云提供商(我们在接下来的几个月中无法更改)每月大约有 30 分钟遭受 DDOS 攻击。对于我们的情况,甚至一分钟的停机时间都是可以接受的。
所以我正在考虑使用 CloudFlare > 3x HAProxy(德克萨斯州达拉斯;加利福尼亚州弗里蒙特;新泽西州纽瓦克)> 6x 应用服务器(德克萨斯州达拉斯;加利福尼亚州弗里蒙特;新泽西州纽瓦克)> 3 Galera Multi-master + 2 Galera 仲裁员(德克萨斯州达拉斯;加利福尼亚州弗里蒙特;新泽西州纽瓦克;佐治亚州亚特兰大;旧金山,旧金山)。
这将大大增加我们的成本,这就是为什么我想要两个 Galera 仲裁器,如果我可以在降低成本的同时提高稳定性的话。
我的主要问题是,Galera Arbitrator 的资源要求是什么,是否值得拥有三个 MariaDB 节点和两个 Galera Arbitrator 节点,而不是集群中只有三个 MariaDB 节点?另一种说法是,是否值得在超过三个节点的设置上使用 garbd?
如果在路由方面,我们的 HAProxy 服务器将选择同一区域中的应用程序服务器,随后选择同一区域中的数据库服务器。这些选择基于连接时间和服务器负载的混合。