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

来源:互联网 发布:布朗肖 知乎 编辑:程序博客网 时间:2024/05/17 02:01

目录:

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 514local0.* /var/log/haproxy.loglocal1.* /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 keepalivedvrrp_script chk_http_port {script "/etc/keepalived/check_haproxy.sh"interval 2weight 2global_defs {router_id LVS_DEVEL}vrrp_instance VI_1 {state MASTER #备用keepalived主机上改为BACKUPinterface eth0virtual_router_id 51 priority 150 #备用keepalived主机上改为120advert_int 1authentication {auth_type PASSauth_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/bashA=`ps -C haproxy --no-header |wc -l`if [ $A -eq 0 ];then/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfgsleep 3if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then/etc/init.d/keepalived stopfifi
授权:
#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同理)

0 0
原创粉丝点击