我们有5台物理服务器。 全部完全相同。 突击search16克,4×146×10克。
所以,我们需要高可用性。 目前的计划如下:
2个带心跳的盒子用于负载平衡。 此时nginx被configuration为平衡器。
那么问题是networking和MySQL。 我打算设置2个运行mysql和nginx的框。 在这些框之间在master < – > master中设置mysql复制。 然后添加已复制mysql的最新的框。 对于这个模型,每个web服务器连接到它的本地mysql服务器。 (以最小化networking延迟)。
其他模式是把两个盒子(nginx)放在HA中,另外两个盒子放在mysql master / slave中。 但在这个模型负载平衡器是孤独的…. –
或者我需要另一个设置。 基本上我不需要怎么做,但select哪种模型。 我们需要处理大量的stream量(约20k /秒)。
三个build议。
1.)考虑通过nginx使用HA代理来实现负载均衡。
[编辑]
考虑通过HttpUpstream进行HA代理时需要考虑的事项:
HttpUpstream :
HA代理:
HA代理是真正的免费负载平衡器IMO。
[编辑/]
2)研究caching。 针对生产(或类似)数据的样本进行configuration生产查询。 每秒钟敲击数据库20k次可能会破坏数据库服务器。 假设每个请求只产生一笔交易,那么这是每天17亿笔交易。 好多啊。 如果可以caching的话,Squid,memcached,redis等可以把你的培根保存在这里。
3.)我提到了分析?
不知道您的应用程序资源使用模式,很难build议采取行动。 例如,你可能会发现你必须把MySQL放在两个专用的盒子上才能满足查询需求。 另一方面,高可用性代理是非常有效的内存和CPU。 您可能会放弃让您的HA代理安装共享您的两个网站头上的资源。