zoukankan      html  css  js  c++  java
  • Haproxy + Rabbit 集群 简要介绍

    # 两台主机都安装上rabbitMQ
    yum install -y rabbitmq-server
     
    # 两台主机都配置/etc/hosts文件
    192.168.23.10 rabbitmq1
    192.168.23.11 rabbitmq2
     
    # 两台主机都以集群的方式启动rabbitmq-server
    rabbitmq-server -detached
     
    # 此时查看 rabbitmqctl cluster_status ,会发现:两台主机在各自的集群上
     
    # 因此,将rabbitmq1加入rabbitmq2的集群中,返过来也可以。先将rabbitmq1的服务停止,再加入到rabbitmq2的集群中,但是node2需要先将cookie文件拷贝到node1。如果碰到问题,需要将node2的rabbitmq进程kill掉,在启动rabbitmq-server服务
    rabbitmqctl stop_app(在node1上执行)
    scp /var/lib/rabbitmq/.erlang.cookie 192.168.23.10:/var/lib/rabbitmq/.erlang.cookie(在node2上执行)
    rabbitmqctl join_cluster "rabbit@rabbitmq2" --ram(在node1上执行, --ram表示是否为内存节点,如果不加为磁盘disc节点)
     
     
    # 再次启动rabbitmq1
    rabbitmqctl start_app
     
    # 再次查看rabbitmq1的集群状态,会发现此时rabbitmq1的集群的集群名称为:"rabbit@rabbitmq2"
    rabbitmqctl cluster_status
     
    启动管理插件
    rabbitmq-plugins enable rabbitmq_management
    查看插件
    rabbitmq-plugins list
     
    重启服务rabbitmq
     
    # 返回web接口
    http://192.168.23.10:15672
     
    # 但是此时可能无法查看到rabbitmq2节点的信息,因为rabbitmq2没有启用rabbitmq_management插件,因此启用插件,在重启服务
    rabbitmq-plugins enable rabbitmq_management
    systemctl restart rabbitmq-server
     
    # 确保每一个节点的15672、25672、5672端口都是监听的
    netstat -lntup
     
    # 此时这两个节点都是disc节点,可以修改为ram节点, 将rabbitmq2改为ram节点
    rabbitmqctl stop_app
    rabbitmqctl change_cluster_node_type ram
    rabbitmqctl start_app
     
    # 再次查看集群状态,发现rabbitmq1已经为ram节点
    rabbitmqctl cluster_status
     
     
    • 设置RabbitMQ镜像功能
    # 在rabbitmq2上创建队列镜像,镜像需要指定策略,策略是用来控制和修改群集范围的队列行为和Exchange行为的
    # 创建了一个名为ha-allqueue策略,“^” 表示所有匹配所有队列名称,策略模式ha-mode为 all 即复制到所有节点,包含新增节点。
    rabbitmqctl set_policy ha-allqueue "^" '{"ha-mode":"all"}'
    • 搭建haproxy服务器,实现TCP层调度(haproxy:192.168.23.12)
    # 在添加一条主机节点安装haproxy
    yum install -y haproxy
     
    # 修改配置文件/etc/haproxy/haproxy.cfg
    global
    # 指定日志记录路径,这个local2是需要在/etc/rsyslog.conf文件中指定的,指定了日志存储路径之后,需要重启rsyslog服务哦
    log 127.0.0.1 local2
    # 指定haproxy的运行环境
    chroot /var/lib/haproxy
    # 指定进程的pid
    pidfile /var/run/haproxy.pid
    # 指定单个进程的最大并发连接数
    maxconn 4000
    # 指定允许haproxy的用户
    user haproxy
    # 指定允许haproxy的组
    group haproxy
    # 指定haproxy以守护进程模式运行
    daemon
    # 设置后台运行2个haproxy进程,但是后台运行了3个进程
    # nbproc 2
     
    # 指定Unix socket通信(基本没用过)
    # stats socket /var/lib/haproxy/stats
     
    # 这里是默认的选项,如何在listen段,backend段,frontend段中将这些选项按需求重新制定
    defaults
    # 指定默认的模式
    mode http
    # 指定日志信息使用全局指定的日志存储路径,全局日志是存储在rsyslog服务中
    log global
    # 将log日志记录到rsyslog日志服务器中,指定日志级别为notice级别
    log 192.168.23.10 local12 notice
    # 日志格式可以不指定,有其默认的值
    #log-format %T %t Some Text
    # 指定压缩类型
    compression algo gzip
    # 指定需要压缩的资源类型
    compression type text/html text/plain
    option httplog
    option dontlognull
    option http-server-close
    # 在后端服务器中可以记录客户端的源IP地址,在日志中加上%{X-Forwarded-For}i
    option forwardfor except 127.0.0.1/8
    # 如果后端服务器不提供服务,那么将会重新di
    option redispatch
    retries 3
    timeout http-request 10s
    timeout queue 1m
    timeout connect 10s
    timeout client 1m
    timeout server 1m
    timeout http-keep-alive 10s
    timeout check 10s
    # 指定接受10000个并发
    maxconn 10000
     
    # haproxy统计页面配置段
    listen stats
    # 指定统计页面监听的端口
    bind *:33559
    # 指定统计页面运行的模式
    mode http
    # 指定开启统计页面功能
    stats enable
    # 如果不设置URI,默认是/haproxy?stats
    stats uri /admin
    # 指定登入是提示信息,表示转义空白字符
    stats realm HAProxy statistics
    # 指定用户名和密码
    stats auth uplooking:123456
    # 指定统计页面自动刷新的时长
    stats refresh 20
    # 如果用户认证成功,统计页面可以被访问
    stats admin if TRUE
    #隐藏统计页面上HAProxy的版本信息
    stats hide-version
     
    listen rabbitmq_cluster
    bind *:5672
    option tcplog
    mode tcp
    timeout client 3h
    timeout server 3h
    balance roundrobin
    # inter 2000 是健康状态检测的时间间隔,rise 2:2次请求成功认为服务器可用,fall 3:3次请求不成功认为服务器不可用
    server mq1 192.168.23.10:5672 check inter 5s rise 2 fall 3
    server mq2 192.168.23.11:5672 check inter 5s rise 2 fall 3
     
     
    3:检测配置文件
    haproxy -c -f /etc/haproxy/haproxy.cfg
     
    4:登入haproxy的管理界面查看是否rabbitmq集群开始工作了
    http://192.168.23.12:33559/admin
  • 相关阅读:
    最大子数组和问题的解
    【剑指Offer】46孩子们的游戏(圆圈中最后剩下的数)
    【剑指Offer】45扑克牌顺子
    【剑指Offer】44翻转单词顺序列
    【剑指Offer】43左旋转字符串
    【剑指Offer】42和为S的两个数字
    【剑指Offer】41和为S的连续正数序列
    【剑指Offer】40数组中只出现一次的数字
    【剑指Offer】39平衡二叉树
    【剑指Offer】38二叉树的深度
  • 原文地址:https://www.cnblogs.com/liu1026/p/7688780.html
Copyright © 2011-2022 走看看