博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
haproxy对redis进行负载均衡
阅读量:5739 次
发布时间:2019-06-18

本文共 2176 字,大约阅读时间需要 7 分钟。

实现思路:

将两个redis-server作为后端,然后通过haproxy做为负载均衡器,每个redis-server的机器上配置配置一个用于健康检查的shell,并通过xinetd将这个shell设置为服务监听9981端口并进行管理。

haproxy通过redis-server机器上的9981端口进行健康检查,如果检查失败,就直接移除该redis-server,恢复后又自动添加

 

haproxy.conf

global        maxconn 2#       debug        quiet        user zhxia        group zhxia        nbproc 1        log 127.0.0.1 local3        spread-checks 2defaults        timeout server  3s        timeout connect 3s        timeout client 60s        timeout http-request 3s        timeout queue 3sfrontend redis_read        bind 192.168.187.140:52020        default_backend cluster_redisbackend cluster_redis        mode tcp        option tcpka        balance static-rr        option httpchk        server  redis_01        192.168.180.101:6380    weight 1 check port 9981 inter 2s rise 2 fall 1        server  redis_02        192.168.180.101:6381    weight 1 check port 9981 inter 2s rise 2 fall 1

PS:

check:启用健康检测

inter:健康检测间隔

rise:检测服务可用的连续次数

fall:检测服务不可用的连续次数

 

安装xinetd,统一对服务进行管理与端口监听

chk_redis.sh

#!/bin/bash#===================================================================================#this script just for check the redis server if it alive#author:zhxia#date:2012-08-09#===================================================================================redis_host=192.168.180.101redis_port=6380redis_client=/usr/local/bin/redis-cliresult=`$redis_client -h $redis_host -p $redis_port -r 1 -i 1 'info' 2>/dev/null`if [ "$result" != "" ];then    echo -e "HTTP/1.1 200 OK\r\n"    echo -e "Content-Type: Content-Type: text/plain\r\n"    echo -e "\r\n"    echo -e "redis is running,listening port is:${redis_port}.\r\n"    echo -e "\r\n"else    echo -e "HTTP/1.1 503 Service Unavailable\r\n"    echo -e "Content-Type: Content-Type: text/plain\r\n"    echo -e "\r\n"    echo -e "redis is down! listen port is:${redis_port}"    echo -e "\r\n"fi

 /etc/xinetd.d/redischk

service redischk{    flags        = REUSE    protocol    = tcp    socket_type    = stream    port        = 9981    wait        = no    user        = haozu    server        = /home/haozu/bin/chk_redis.sh    log_on_failure +=USERID    disable        =no}

/etc/services

# Local servicesredischk    9981/tcp

 

 

 

 

 

 

转载地址:http://rsyzx.baihongyu.com/

你可能感兴趣的文章
膝盖中了一箭之康复篇-第八个月暨2月份目标总结
查看>>
IPA提交APPStore问题记录(一)
查看>>
有利于seo优化的网站地图不能取巧
查看>>
快照产品体验优化
查看>>
ASCII
查看>>
ibatis SqlMap not found
查看>>
Android SD卡创建文件和文件夹失败
查看>>
Ubuntu 14.04 vsftp refusing to run with writable root inside chroot问题解决方法
查看>>
Intellij IDEA远程调试tomcat
查看>>
hadoop的学习论坛
查看>>
Struts2 学习小结
查看>>
烂泥:wordpress迁移到docker
查看>>
.扒渣机的性能及优势 
查看>>
Linux下磁盘保留空间的调整,解决df看到的空间和实际磁盘大小不一致的问题
查看>>
RSA 生成公钥、私钥对
查看>>
测试工具综合
查看>>
asp.net中调用COM组件发布IIS时常见错误 80070005解决方案
查看>>
分享一段ios数据库代码,包括对表的创建、升级、增删查改
查看>>
如何书写高质量的jQuery代码
查看>>
Activity的生命周期整理
查看>>