使用Haproxy对Sphinx做负载均衡

HAproxy配置

关于haproxy配置 这块不做多介绍,运维基本手到擒来,我们要一个vip就可以了

sphinx的问题

sphinx本身只支持分布式,分布式就会有单点的问题,当请求量过高时开始出现问题。分布式没法横向扩容,没法高可用。所以考虑要做一个负载均衡,那么问题来了,sphinx多台机器没法向mysql那样利用binlog日志同步数据,做负载的话服务器之间数据同步是一个问题,比如A服务器2点轮换索引时,B服务器3点轮换 这中间访问数据就会有差异。就算同时轮换索引建立数据的时间差也会有索引,而且同时轮换索引对mysql压力巨大。

解决方案

  1. A服务器轮换索引时,先停止B服务器的服务
  2. A服务器索引轮换成功,rsync data文件至B服务器
  3. B服务器启动服务(sphinx启动服务会重新缓存索引)

使用Haproxy对Sphinx做负载均衡_第1张图片

这样的好处是B服务器不需要重新再去查询数据源建立索引,而且能保证A B服务器的数据同步。

你可能感兴趣的:(sphinx)