crespo09 发表于 2018-11-3 08:29:11

05.haproxy+mysql负载均衡 整合 redis集群+ssm-cuijiale5445的博客

http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215215726449-1017402039.png
  本篇重点讲解haproxy+mysql负载均衡,搭建完成后与之前搭建的redis+ssm进行整合
  (注:这里用到了两台mysql数据库,分别安装两台虚拟机上,已经成功实现主主复制,如果有需要,请查看我另外一篇博客:http://www.cnblogs.com/cuijiale/p/8039421.html)
  1、首先下载最新的的haproxy安装包:haproxy-1.7.9.tar.gz  
  下载完成后cp到特定的目录下/usr/local
  2、安装haproxy
  解压“tar -zxvf haproxy-1.7.9.tar.gz”在本目录,压缩完成后“cd haproxy-1.7.9”
  执行安装命令“make TARGET=linux3100 CPU=x86_64 PREFIX=/usr/local/haproxy-1.7.9”
  “make install PREFIX=/usr/local/haproxy-1.7.9”
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215201901543-12255973.png
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215201944152-1919598043.png
  3、安装完成后配置启动
  在安装目录的根目录创建haproxy.cfg配置文件,启动时需要。
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215202234558-840126170.png
  进入haproxy.cfg文件修改
1 global 2         log 127.0.0.1   local2    #日志相关 3         maxconn 4096 4         chroot /var/lib/haproxy 5   pidfile   /var/run/haproxy.pid 6            user haproxy 7         daemon 8   stats socket /var/lib/haproxy/stats 9         #debug10         #quiet1112 defaults13   mode                  tcp            #haproxy运行模式(http | tcp | health)14   log                     global15   option                  dontlognull16   option                  redispatch   #serverId对应的服务器挂掉后,强制定向到其他健康的服务器17   retries               3            #三次连接失败则服务器不用18   timeout http-request    10s19   timeout queue         1m20   timeout connect         10s            #连接超时21   timeout client          1m             #客户端超时22   timeout server          1m             #服务器超时23   timeout http-keep-alive 10s24   timeout check         10s            #心跳检测25   maxconn               600            #最大连接数2627 listenmysql28         bind 0.0.0.0:23306    #代理端口29         mode tcp            #模式 TCP30         option mysql-check user haproxy   #mysql健康检查root为mysql登录用户名31         balance roundrobin            #调度算法32         server mysql1 192.168.40.128:3306 weight 1 checkinter 1s rise 2 fall 2 #健康检查加上check33         server mysql2 192.168.40.130:3306 weight 1 checkinter 1s rise 2 fall 234 listen stats   #监控35            mode http36            bind 0.0.0.0:888837            stats enable38            stats uri /dbs39            stats realm Global\ statistics40            stats auth admin:admin  配置文件后,就可以启动了,不过在这之前,因为数据库是负载均衡,需要同步数据与访问数据,需要创建一个一模一样的帐号来应对访问需求,并且主主复制的帐号也需要改成一样的,为了方便直接赋予这个用户全部权限。语法查看我mysql相关博客:    http://www.cnblogs.com/cuijiale/p/8034319.html,其中都有提到。ok该排的坑我们已经躺过了,这里我就启动服务(为了让haproxy监控两个数据库信息,需要分别创建一个haproxy用户,密码为空就好)。
  ./usr/local/haproxy-1.7.9/sbin/haproxy -f /usr/local/haproxy-1.7.9/haproxy.cfg
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215205443433-1835224903.png
  启动后可以通过命令去查看。启动一切正常
  远程使用“http://192.168.40.128:8888/dbs”查看监控情况这里用到的配置全部来自于
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215205827433-1683428243.png
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215210240730-1036543252.png
  登录密码这里配置的是admin/admin可以看到我们配置的两台mysql已经被监控到了。
  4、整合smm
  上面配置图中可以看到我们让haproxy监听的23306端口,所以配置文件中需要连接这个端口
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215211044793-1932417455.png
  一切就绪,启动redis集群
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215211200886-2122090181.png
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215211449558-1645777043.png
  redis主从6个节点全部启动后,启动web服务访问
http://images2017.cnblogs.com/blog/1060053/201712/1060053-20171215211557808-164017311.png
  数据也完美得到。一切ok,这样我们一个SSM WEB应用+redis集群+mysql负载均衡的高可用,高性能,高扩展的读写分离架构就搭建完成了,其中还有很多瑕疵,之后也会自己慢慢补齐,架构还需要使用nginx对web应用进行负载均衡,减轻应用服务器压力。
  其中不对地方,还望各位能够指出,谢谢


页: [1]
查看完整版本: 05.haproxy+mysql负载均衡 整合 redis集群+ssm-cuijiale5445的博客