博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rabbitmq 高可用记录
阅读量:5332 次
发布时间:2019-06-15

本文共 5402 字,大约阅读时间需要 18 分钟。

hosts:    172.16.10.26 node1    172.16.10.27 node2    172.16.10.28 node3

把上面的主机分别添加到各自的hosts中

在三台主机上面创建.erlang.cookie文件在主目录

并把VORMVSAAOFOFEQKTNWBA添加进去

(3)rabbitmq-env.conf rabbitmq的环境参数配置

RABBITMQ_NODE_PORT 端口设置,默认为5672
RABBITMQ_NODENAME 节点名称,默认为rabbit
MNESIA_BASE 后端存储目录 ,默认为/var/lib/rabbitmq/mnesia
LOG_BASE 日志目录,默认为/var/log/rabbitmq/

安装

sudo rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
sudo yum install rabbitmq-server-3.6.10-1.noarch.rpm

sudo rabbitmqctl stop

sudo rabbitmq-server -detached

sudo rabbitmqctl cluster_status

sudo hostname node1

sudo rabbitmqctl stop_app

sudo rabbitmqctl join_cluster rabbit@node1

sudo rabbitmqctl -n rabbit@node2 join_cluster rabbit@node1 //将rabbit_01添加到集群节点rabbit中去

rabbitmqctl cluster_status //查看集群节点的状态
rabbitmqctl -n rabbit_01@localhost start_app //启动rabbit_01节点的

sudo rabbitmq-plugins enable rabbitmq_management

.erlang.cookie必须具有可读权限,设置为600即可

sudo vim /var/lib/rabbitmq/.erlang.cookie
VORMVSAAOFOFEQKTNWBA

端口及用途

5672 客户端连接用途
15672 web管理接口
25672 集群通信用途

/etc/haproxy/haproxy.cfg###########全局配置#########global    log /dev/log    local0    log /dev/log    local1 notice    chroot /var/lib/haproxy     # 改变当前工作目录    stats socket /run/haproxy/admin.sock mode 660 level admin   # 创建监控所用的套接字目录    pidfile  /var/run/haproxy.pid   # haproxy的pid存放路径,启动进程的用户必须有权限访问此文件     maxconn  4000                   # 最大连接数,默认4000    user   haproxy                  # 默认用户    group   haproxy                 # 默认用户组    daemon                          # 创建1个进程进入deamon模式运行。此参数要求将运行模式设置为"daemon    # Default SSL material locations    ca-base /etc/ssl/certs    crt-base /etc/ssl/private    # Default ciphers to use on SSL-enabled listening sockets.    # For more information, see ciphers(1SSL). This list is from:    #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS    ssl-default-bind-options no-sslv3###########默认配置#########defaults    log global    mode    http                                # 默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK    option  httplog                             # 采用http日志格式    option  dontlognull                         # 启用该项,日志中将不会记录空连接。所谓空连接就是在上游的负载均衡器                                                # 或者监控系统为了探测该 服务是否存活可用时,需要定期的连接或者获取某                                                # 一固定的组件或页面,或者探测扫描端口是否在监听或开放等动作被称为空连接;                                                # 官方文档中标注,如果该服务上游没有其他的负载均衡器的话,建议不要使用                                                # 该参数,因为互联网上的恶意扫描或其他动作就不会被记录下来    timeout connect 5000                    # 连接超时时间    timeout client  50000                   # 客户端连接超时时间    timeout server  50000                   # 服务器端连接超时时间    option  httpclose       # 每次请求完毕后主动关闭http通道     option  httplog         # 日志类别http日志格式     #option  forwardfor      # 如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip      option  redispatch      # serverId对应的服务器挂掉后,强制定向到其他健康的服务器    timeout connect 10000   # default 10 second timeout if a backend is not found    maxconn     60000       # 最大连接数    retries     3           # 3次连接失败就认为服务不可用,也可以通过后面设置     errorfile 400 /etc/haproxy/errors/400.http    errorfile 403 /etc/haproxy/errors/403.http    errorfile 408 /etc/haproxy/errors/408.http    errorfile 500 /etc/haproxy/errors/500.http    errorfile 502 /etc/haproxy/errors/502.http    errorfile 503 /etc/haproxy/errors/503.http    errorfile 504 /etc/haproxy/errors/504.http####################################################################listen http_front        bind 0.0.0.0:1080           #监听端口          stats refresh 30s           #统计页面自动刷新时间          stats uri /haproxy?stats            #统计页面url          stats realm Haproxy Manager #统计页面密码框上提示文本          stats auth admin:admin      #统计页面用户名和密码设置          #stats hide-version         #隐藏统计页面上HAProxy的版本信息#####################我把RabbitMQ的管理界面也放在HAProxy后面了###############################listen rabbitmq_admin     bind 0.0.0.0:8004    server node1 192.168.0.31:15672    server node2 192.168.0.32:15672    server node3 192.168.0.33:15672####################################################################listen rabbitmq_cluster     bind 0.0.0.0:5672    option tcplog    mode tcp    timeout client  3h    timeout server  3h    option          clitcpka    balance roundrobin      #负载均衡算法(#banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数)    #balance url_param userid    #balance url_param session_id check_post 64    #balance hdr(User-Agent)    #balance hdr(host)    #balance hdr(Host) use_domain_only    #balance rdp-cookie    #balance leastconn    #balance source //ip    server   node1 192.168.0.31:5672 check inter 5s rise 2 fall 3   #check inter 2000 是检测心跳频率,rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用    server   node2 192.168.0.32:5672 check inter 5s rise 2 fall 3    server   node3 192.168.0.33:5672 check inter 5s rise 2 fall 3

haproxy http://172.16.10.26:8080/haproxy?stats

web http://172.16.10.26:8081
client http://172.16.10.26:8082

rabbitmqctl

(1)首先关闭rabbitmq: rabbitmqctl stop_app

(2)还原: rabbitmqctl reset

(3)启动: rabbitmqctl start_app

(4)添加用户: rabbitmqctl add_user root root

(5)设置权限:rabbitmqctl set_permissions -p / root "." "." ".*"

(6)查看用户: rabbitmqctl list_users

转载于:https://www.cnblogs.com/bergus/articles/rabbitmq-gao-ke-yong-ji-lu.html

你可能感兴趣的文章
分层图最短路【bzoj2763】: [JLOI2011]飞行路线
查看>>
linux下编译复数类型引发的错误:expected unqualified-id before '(' token
查看>>
codeforces 1041A Heist
查看>>
字典常用方法
查看>>
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
查看>>
python的猴子补丁monkey patch
查看>>
架构模式: API网关
查看>>
正则验证积累
查看>>
Linux学习-汇总
查看>>
jQuery瀑布流+无限加载图片
查看>>
83. 删除排序链表中的重复元素
查看>>
bzoj1048 [HAOI2007]分割矩阵
查看>>
python中的__init__ 、__new__、__call__等内置函数的剖析
查看>>
Java中的编码
查看>>
PKUWC2018 5/6
查看>>
As-If-Serial 理解
查看>>
MYSQL SHOW VARIABLES简介
查看>>
雷林鹏分享:Redis 简介
查看>>
自卑都是自己不踏实做事的表现
查看>>
C# 网页自动填表自动登录 .
查看>>