美文网首页
RabbitMQ RabbitMQ镜像集群构建

RabbitMQ RabbitMQ镜像集群构建

作者: dylan丶QAQ | 来源:发表于2020-10-12 11:39 被阅读0次

    起因:在实际项目开发过程中,需要使用RabbitMQ来实现消息队列的功能,比如说我发布一个动态之后,需要在30分钟使用默认用户给他点几个赞,之前考虑使用redis的zset对他进行操作,之后决定使用RabbitMQ,专业的事情使用专业的工具来操作。


    1. RabbitMQ镜像集群构建

    我们再来看一下镜像集群的结构

    所有的RabbitMQ都是平行结构,在搭建的过程中有一个加入主机的概念

    所有机器的服务和控制台都应该提前安装好

    # 单机安装参考上次课程
    # 0.给集群中的服务设置hostname和IP的映射
    vi /etc/hostname
    RMQ146
    vi /etc/hosts
    192.168.0.146 RMQ146
    192.168.0.159 RMQ159
    192.168.0.160 RMQ160
    # 1.先停掉三个节点的服务
    rabbitmqctl stop
    # 2.进行文件同步将RMQ146上的文件复制给159和160,相当于服务中的cookie文件
    scp /var/lib/rabbitmq/.erlang.cookie root@192.168.0.159:/var/lib/rabbitmq/
    scp /var/lib/rabbitmq/.erlang.cookie root@192.168.0.160:/var/lib/rabbitmq/
    # 3.三台机器启动服务
    rabbitmq-server -detached
    # 4.其他节点加入集群,相当于寻址操作,slave加入master
    159: rabbitmqctl stop_app
    159: rabbitmqctl join_cluster rabbit@RMQ146
    159: rabbitmqctl start_app
    160: rabbitmqctl stop_app
    160: rabbitmqctl join_cluster rabbit@RMQ146
    160: rabbitmqctl start_app
    # 5.查看集群的状态,可以在任何节点上执行
    rabbitmqctl cluster_status
    

    加入集群的时候以IP方式可能会报错:join_cluster rabbit@192.168.0.146 ,这个地方必须是hostname

    还需要一个镜像队列数据复制开通的命令

    • 将集群中所有队列设置成镜像队列,让数据进行互相复制,状态一致

    • master节点上有个一个消息,其他节点上也会同步

    # 在集群的任何节点执行都可以
    rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
    

    将节点设置成内存模式

    # 可以停掉服务后进行修稿
    # 在需要修改的机器上
    rabbitmqctl stop_app
    rabbitmqctl change_cluster_node_type ram
    rabbitmqctl start_app
    

    如何将节点从集群中去掉

    # 先停掉自己,在自己机器上执行
    rabbitmqctl stop_app
    # 去其他live的机器将刚刚停掉机器移除
    rabbitmqctl forget_cluster_node rabbit@RMQ159
    # 在加入集群的时候就设置成RAM模式
    # 在要加入的节点上执行
    rabbitmqctl join_cluster --ram rabbit@RMQ146
    

    2. 集群核心参数配置

    • tcp_listerners : 端口

    • disk_free_limit : 磁盘的低水位线,高于磁盘水平线就不能写入数据了,单位是byte

      • 三台机器如果一台20G,一台15G,一台30G,他们是镜像关系,最小的机器就是磁盘的底线
    • vm_memory_high_watermark : 内存的最高水位线,默认值0.4,为内存总量的40%


    不要以为每天把功能完成了就行了,这种思想是要不得的,互勉~!

    相关文章

      网友评论

          本文标题:RabbitMQ RabbitMQ镜像集群构建

          本文链接:https://www.haomeiwen.com/subject/obuupktx.html