您的位置:首页 > 运维架构 > 网站架构

中间件服务器架构:Keepalived+HaProxy+Thrift

2016-09-01 16:20 281 查看
目录:

1.原理图

2.CentOS 6.5下安装Haproxy

3.CentOS 6.5下安装Keepalived

4.windows下启动ThriftServer(Linux同理)

5.windows下启动ThriftClient(Linux同理)

相关文章: http://blog.csdn.net/ceasadan/article/details/52277136 《安装Thrift并写一个简单的测试程序》
http://blog.csdn.net/ceasadan/article/details/52317586 《Thrift小试牛刀:实现Windows_C#_客户端与Linux_C++_服务端通信》
http://blog.csdn.net/ceasadan/article/details/52318585 《Thrift应用:Windows下C#服务端实现》
http://blog.csdn.net/ceasadan/article/details/52369045 《使用HaProxy实现Thrift服务端的负载均衡》

一.原理图



a.客户端

所有ThriftClient通过keepalived发布的虚拟IP访问(1个IP);

b.KeepAlived+Haproxy的服务器集群

KeepAlived和Haproxy部署在同一台Linux服务器;

KeepAlived监测Haproxy运行状态,如果Haproxy停止了,就重新启动Haproxy;

KeepAlived+Haproxy的服务器集群保证了服务的可靠性;

c.Haproxy负载均衡

Haproxy维护与多个ThriftServer的链接,并实现负载均衡;

Haproxy还可在网页上显示ThriftServer的运行状态;

d.ThriftServer集群

保证了ThriftServer服务提供的可靠性;

待完善:

1.KeepAlived监测Haproxy运行状态,并发邮件通知管理员

二.CentOS 6.5下安装Haproxy

1.下载解压:

下载:http://download.csdn.net/tag/haproxy 

解压:tar xvf haproxy-1.6.4.tar.gz

2.编译

进入目录:cd haproxy-1.6.4

make TARGET=linux2628 CPU=x86_64 PREFIX=/usr/local/haprpxy

3.安装

make install PREFIX=/usr/local/haproxy

4.创建配置文件目录

mkdir -p /etc/haproxy

5.编辑配置文件

vi /etc/haproxy/haproxy.cfg

###########全局配置#########
global
daemon
nbproc 1
pidfile /var/run/haproxy.pid
########默认配置############
defaults
mode http               #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
retries 2               #两次连接失败就认为是服务器不可用,也可以通过后面设置
option redispatch       #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose     #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
maxconn 4096            #默认的最大连接数
timeout connect 5000ms  #连接超时
timeout client 30000ms  #客户端超时
timeout server 30000ms  #服务器超时
#timeout check 2000      #=心跳检测超时
log 127.0.0.1 local0 err #[err warning info debug]
########统计页面配置########
listen admin_stats
bind 0.0.0.0:1080               #监听端口
mode http                       #http的7层模式
option httplog                  #采用http日志格式
#log 127.0.0.1 local0 err
maxconn 10
stats refresh 30s               #统计页面自动刷新时间
stats uri /stats                #统计页面url
stats realm XingCloud\ Haproxy  #统计页面密码框上提示文本
stats auth admin:admin          #统计页面用户名和密码设置
stats hide-version              #隐藏统计页面上HAProxy的版本信息
########testThrift配置#################
listen ThriftServer
bind 0.0.0.0:8888
balance roundrobin
mode tcp
option tcplog
option tcp-check
#maxconn 4086
log 127.0.0.1 local2 debug
server ThriftServer1 172.16.61.160:9090   check
server ThriftServer2 192.168.1.199:9090    check
########frontend配置##############


6.#拷贝安装包haproxy-1.6.4/examples目录下的文件

cp haproxy.init /etc/init.d/haproxy

chmod 775 /etc/init.d/haproxy #授权

sed -i "s/BIN=\/usr\/sbin/BIN=\/usr\/local\/sbin/g" /etc/init.d/haproxy #修改执行路径

cp -r errorfiles/ /etc/haproxy/ #HTTP响应文件

7.日志文件:

a.

#打开haproxy日志,编辑文件

vi /etc/rsyslog.d/haproxy.conf

添加配置:

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
local0.* /var/log/haproxy.log
local1.* /var/log/haproxy.log


b.

vi /etc/sysconfig/rsyslog

#SYSLOGD_OPTIONS="-c 5" #注释掉默认配置

SYSLOGD_OPTIONS="-c 2 -r -m 0" #添加新配置


#注:

#-c 2 使用兼容模式,默认是 -c 5

#-r 开启远程日志

#-m 0 标记时间戳。单位是分钟,为0时,表示禁用该功能

c.

#重启系统日志服务

service rsyslog restart

8.启动服务

启动服务:

# /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg

重启服务:

# /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg -st `cat /usr/local/haproxy/logs/haproxy.pid`  (没有换行)

停止服务:

/etc/init.d/haproxy stop

9.查看监控网页
http://localhost:1080/stats
usr:admin

psw:admin



三.CentOS 6.5下安装Keepalived

1.下载解压

官网下载:http://www.keepalived.org/

tar zxvf keepalived-1.2.23.tar.gz

cd keepalived-1.2.23

./configure --prefix=/

编译:make

安装:make install(需要管理员权限su)

2.移动配置文件

#cd /etc/keepalived/

#mv keepalived.conf keepalived.conf.default

3.配置文件配置

#vi keepalived.conf

! Configuration File for keepalived

vrrp_script chk_http_port {
script "/etc/keepalived/check_haproxy.sh"
interval 2
weight 2

global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #备用keepalived主机上改为BACKUP
interface eth0
virtual_router_id 51
priority 150 #备用keepalived主机上改为120
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}

track_script {
chk_http_port
}

virtual_ipaddress {
192.168.1.200
}
}
}


说明:

virtual_ipaddress {

192.168.1.200 }
thrift客户端:连接此IP,端口号还是haproxy开放的端口号8888

4.配置check_haproxy.sh(启动keepalived时,自动启动haproxy,并且监听haproxy,haproxy停掉后自动启动)

#vi /etc/keepalived/check_haproxy.sh
#!/bin/bash
A=`ps -C haproxy --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg
sleep 3
if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
授权:

#chmod 755 /etc/keepalived/check_haproxy.sh

5.启动keepalived

/etc/init.d/keepalived start (这条命令会自动把haproxy启动)

附:停止命令

/etc/init.d/keepalived stop

四.windows下启动ThriftServer(Linux同理)

五.windows下启动ThriftClient(Linux同理)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: