设为首页 收藏本站
查看: 220|回复: 0

[经验分享] rabbitmq集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-2 09:00:41 | 显示全部楼层 |阅读模式
#haproxy+keepalived+rabbitmq集群
192.168.6.128  haproxy+keepalived
192.168.6.129  haproxy+keepalived
192.168.6.130  rabbitmq
192.168.6.131  rabbitmq
192.168.6.132  vip
1、erlang安装:
wget http://www.erlang.org/download/otp_src_R15B01.tar.gz
tar zxvf otp_src_R15B01.tar.gz
cd otp_src_R15B01
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll
make;make install       

添加这三句到/etc/profile
ERL_HOME=/usr/local/erlang

PATH=$ERL_HOME/bin:$PATH

export ERL_HOME PATH

source /etc/profile

1、rabbit安装 :
wget http://www.rabbitmq.com/releases ... server-3.0.1.tar.gz
tar zxvf rabbitmq-server-3.0.1.tar.gz
cd rabbitmq-server-3.0.1
yum install python-simplejson libxslt xmlto -y
make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/sbin MAN_DIR=/usr/local/man install
在安装好的两台节点服务器中,分别修改/etc/hosts文件,指定他们的hosts文件
192.168.6.130 web3
192.168.6.131 web4

Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先构建起erlang的集群环境。Erlang的集群中各节点是通过一个magic cookie来实现的,这个cookie存放在 /var/lib/rabbitmq/.erlang.cookie 中,cookie有可能会在$HOME/.erlang.cookie,文件是400的权限。所以必须保证各节点cookie保持一致,否则节点之间就无法通信。

rabbitmq-server start 两个节点启动
rabbitmqctl stop
rabbitmq-server -detached
131上执行:rabbitmqctl join_cluster  rabbit@web3
rabbitmqctl cluster_status 查看是否组成集群
上面配置RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复制,虽然该模式解决一部分节点压力,但队列节点宕机直接导致该队列无法使用,只能等待重启,所以要想在队列节点宕机或故障也能正常使用,就要复制队列内容到集群里的每个节点,需要创建镜像队列。
使用Rabbit镜像功能,需要基于rabbitmq策略来实现,政策是用来控制和修改群集范围的某个vhost队列行为和Exchange行为
在cluster中任意节点启用策略,策略会自动同步到集群节点

rabbitmqctl set_policy ha-all "^ha\." '{"ha-mode":"all"}'



haproxy配置文件:

global
    maxconn 51200
    chroot /usr/local/haproxy
    uid 99
    gid 99
    daemon
    #quiet  
    nbproc 1 #进程数  
    pidfile /usr/local/haproxy/logs/haproxy.pid

defaults
        mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK  
        #retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置  
        option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器  
        option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接  
        timeout connect 5000ms #连接超时  
        timeout client 30000ms #客户端超时  
        timeout server 30000ms #服务器超时  
        #timeout check 2000 #=心跳检测超时  
        log 127.0.0.1 local0 err #[err warning info debug]  
        balance roundrobin                     #负载均衡算法  
#        option  httplog                        #日志类别,采用httplog  
#        option  httpclose   #每次请求完毕后主动关闭http通道,ha-proxy不支持keep-alive,只能模拟这种模式的实现  
#        option  dontlognull  
#        option  forwardfor  #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip  
frontend HAPROXY
        bind *:80
        mode http
        option httplog
        default_backend www.web.com
#listen  localhost 192.168.6.128:80
#        mode http   
#        option httplog #采用http日志格式  
#        stats refresh 30s #统计页面自动刷新时间  
#        stats uri /stats #统计页面url  
#        stats realm Haproxy Manager #统计页面密码框上提示文本  
#        stats auth admin:admin #统计页面用户名和密码设置  
#        #stats hide-version #隐藏统计页面上HAProxy的版本信息
backend www.web.com       #这是做的nginx负载均衡
        balance source
        server web2 192.168.6.131:80 check inter 1500 rise 3 fall 3
        server web3 192.168.6.130:80 check inter 1500 rise 3 fall 3

listen rabbitmq_cluster 0.0.0.0:5672  #这是rabbitmq
    mode tcp
    balance roundrobin
    server   rqslave1 192.168.6.131:5672 check inter 2000 rise 2 fall 3
    server   rqslave2 192.168.6.130:5672 check inter 2000 rise 2 fall 3





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-73029-1-1.html 上篇帖子: Linux内核编译、管理以及kickstart和引导镜像制作 下篇帖子: Linux下阻塞与非阻塞IO
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表