haproxy 는 redis 에 부하 균형 을 맞춘다.

http://www.cnblogs.com/xiazh/archive/2012/11/13/2630846.html
haproxy.conf
global
        maxconn 2
#       debug
        quiet
        user zhxia
        group zhxia
        nbproc 1
        log 127.0.0.1 local3
        spread-checks 2
defaults
        timeout server  3s
        timeout connect 3s
        timeout client 60s
        timeout http-request 3s
        timeout queue 3s
frontend redis_read
        bind 192.168.187.140:52020
        default_backend cluster_redis
backend 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.101
redis_port=6380
redis_client=/usr/local/bin/redis-cli
result=`$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
"     echo -e "Content-Type: Content-Type: text/plain\r
"     echo -e "\r
"     echo -e "redis is running,listening port is:${redis_port}.\r
"     echo -e "\r
" else     echo -e "HTTP/1.1 503 Service Unavailable\r
"     echo -e "Content-Type: Content-Type: text/plain\r
"     echo -e "\r
"     echo -e "redis is down! listen port is:${redis_port}"     echo -e "\r
" 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 services
redischk    9981/tcp

다음으로 전송:https://blog.51cto.com/tianshili/1758726

좋은 웹페이지 즐겨찾기