【发布时间】:2016-11-01 10:38:35
【问题描述】:
我开发了一个发送短信的 API 目前在同一台服务器上运行三个 MySql 表(sms_account、sms_number 和 sms_transaction)。
我想使用 haproxy 进行负载平衡并提高性能以在多个 Web 服务器之间拆分请求,但我真的不知道如何处理其中的数据库部分。我知道我可以在 master-master 场景中创建一个单独的数据库集群,但想知道它是否可以做得更好。
我曾考虑拥有一个主集群数据库,其中包含与网络服务器相同的数据库。 sms_account 和 sms_number 表只能在这个上更新,而这个可以更新 web 服务器的 sms_account 和 sms_number 表,因为它们不会经常更改。然后我认为每个 web 服务器/mysql 实例都可以使用每个 sms_transaction 表中的记录定期更新主数据库。
听起来有点乱,但认为这样数据库负载会非常低,因为所有 Web 服务器数据库都将保持小而快,并且主要的数据库可以用于计费。
我只是想对设计提出第二意见。我认为这样在出现故障的情况下,任何 Web 服务器都可以独立于其他服务器继续工作。
Web 服务器实际上是在记录事务,就是这样。没有复杂的查询。我可以从主数据库中进行报告等。
非常感谢
【问题讨论】:
-
嗨,Ross,您确定还需要扩展 MySQL 吗?
-
可能不会,使用多个 Web 节点和单个数据库服务器是否还能提高性能?虽然如果我将来需要有一个计划会很好。
标签: php mysql api architecture scaling