zoukankan      html  css  js  c++  java
  • RabbitMq安装(单点与集群)rabbitMq以及状态查询

    集群进入某个节点查看指令:rabbitmqctl cluster_status


    单机版:
    docker run -d --name rabbit
    -e RABBITMQ_DEFAULT_USER=admin
    -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management
    集群安装   --hostname  rabbit1指定主机名  本机安装  一机多例也可以不指定    
    镜像集群可以把RABBITMQ_ERLANG_COOKIE='rabbitcookie' 都写成一样的,这样就可以保证每个节点一致,从而达成集群 docker run -d
    --hostname rabbit1
    --name myrabbit1
    -p 15672:15672 -p 5672:5672
    -e RABBITMQ_DEFAULT_USER=admin
    -e RABBITMQ_DEFAULT_PASS=admin -e RABBITMQ_ERLANG_COOKIE='rabbitcookie'
    rabbitmq:management docker run -d
    --hostname rabbit2
    --name myrabbit2
    -p 5673:5672
    -e RABBITMQ_DEFAULT_USER=admin
    -e RABBITMQ_DEFAULT_PASS=admin --link myrabbit1:rabbit1
    -e RABBITMQ_ERLANG_COOKIE='rabbitcookie'
    rabbitmq:management docker run -d
    --hostname rabbit3
    --name myrabbit3
    -p 5674:5672
    -e RABBITMQ_DEFAULT_USER=admin
    -e RABBITMQ_DEFAULT_PASS=admin --link myrabbit1:rabbit1
    --link myrabbit2:rabbit2
    -e RABBITMQ_ERLANG_COOKIE='rabbitcookie'
    rabbitmq:management –link:将多个容器链接到一起 erlang Cookie值必须相同,也就是RABBITMQ_ERLANG_COOKIE参数的值必须相同


    容器端口5672 被5673 5674 映射


    4.绑定节点

    rabbitmqctl reset  清空当前节点数据防止绑定失败
    rabbitmqctl join_cluster --ram rabbit@rabbit1   都关联rabbit1进行绑定



    设置节点1:
    docker exec -it myrabbit1 bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl start_app
    exit

    设置节点2:参数--ram表示设置为内存节点

    docker exec -it myrabbit2 bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl join_cluster --ram rabbit@rabbit1
    rabbitmqctl start_app
    exit

    设置节点3:参数--ram表示设置为内存节点

    docker exec -it myrabbit3 bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl join_cluster --ram rabbit@rabbit1
    rabbitmqctl start_app
    exit

    查看你集群状态:进入某个实例节点 输入这个指令即可查看集群信息 rabbitmqctl cluster_status



    再加一个集群点:

    docker run -d  
    --hostname rabbit4
    --name myrabbit4
    -p 5675:5672
    -e RABBITMQ_DEFAULT_USER=admin
    -e RABBITMQ_DEFAULT_PASS=admin --link myrabbit1:rabbit1
    --link myrabbit2:rabbit2
    --link myrabbit3:rabbit3
    -e RABBITMQ_ERLANG_COOKIE='rabbitcookie'
    rabbitmq:management
    
    
    docker exec -it myrabbit4 bash
    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl join_cluster rabbit@rabbit1
    rabbitmqctl start_app
    exit
    剔除4节点,进入rabbit4的镜像  执行如下操作
    rabbitmqctl stop_app
    rabbitmqctl reset



    搭建rabitmq附加参数

    --log-opt max-size=10m 日志文件单个最大10M

    --log-opt max-file=3 日志文件最多保留3个

     -v /data/rabbitmq01:/var/lib/rabbitmq:z 

    如下样例:引用:https://blog.csdn.net/qq_40378034/article/details/89788708 这偏文章的见解
    docker run -d --hostname rabbitmq1   
                  --add-host="rabbitmq1":192.168.3.92     所在机器的IP
                  --add-host="rabbitmq2":192.168.3.93     所在机器的IP
                  --name rabbit1
                  --restart=always
                  -p "4369:4369" 
                  -p "5672:5672"  
                  -p "15672:15672"  
                  -p "25672:25672"  
                  -v /data/rabbitmq01:/var/lib/rabbitmq:z 
                  -e RABBITMQ_DEFAULT_USER=jffwuser 
                  -e RABBITMQ_DEFAULT_PASS=jffw123  
                  -e RABBITMQ_ERLANG_COOKIE='jffwcookie' 
                 erikopa/rabbitmq-management-x-delayed-message
    
     

    给节点添加用户其权限:

    rabbitmqctl -n rabbit1 add_user wb admin
    rabbitmqctl -n rabbit1 set_user_tags wb administrator
    rabbitmqctl  -n rabbit1 set_permissions -p / wb  ".*" “.*” ".*"

    查看用户列表:
    rabbitmqctl list_users
    引用:https://blog.csdn.net/qq_40378034/article/details/89788708 这偏文章的见解

    RabbitMQ中的每一个节点,不管是单一节点系统或者集群中的一部分,要么是内存节点,要么是磁盘节点。
    内存节点将所有的队列、交换机、绑定关系、用户、权限和vhost的元数据定义都存储在内存中,而磁盘节点则将这些信息存储到磁盘中。
    单节点的集群中必然只有磁盘类型的节点,否则当重启RabbitMQ之后,所有关于系统的配置信息都会丢失。不过在集群中,可以选择配置部分节点为内存节点,这样可以获得更高的性能

    RabbitMQ只要求在集群中至少有一个磁盘节点,所有其他节点可以是内存节点。当节点加入或者离开集群时,它们必须将变更通知到至少一个磁盘节点。
    如果只有一个磁盘节点,而且刚好是它崩溃了,那么集群可以继续发送或者接收消息,但是不能执行创建队列、交换机、绑定关系、用户,以及更改权限、添加或者删除集群节点的操作了。
    也就是说,如果集群中唯一的磁盘节点崩溃,集群仍然可以保持运行,但是直到将该节点恢复到集群前,无法更改任何东西。所以在建立集群的时候应该保证有两个或者多个磁盘节点的存在

    在内存节点重启后,它们会连接到预先配置的磁盘节点,下载当前集群元数据的副本。当在集群中添加内存节点时,确保告知其所有的磁盘节点。
    只要内存节点可以找到至少一个磁盘节点,那么它就能在重启后重新加入集群中为了确保集群信息的可靠性,建议全部使用磁盘节点

    多机器部署多应用:rabbitcookie 里面的值要保持一致

    一点点学习,一丝丝进步。不懈怠,才不会被时代淘汰
  • 相关阅读:
    斯坦福第十六课:推荐系统(Recommender Systems)
    斯坦福第十五课:异常检测(Anomaly Detection)
    斯坦福第十四课:降维(Dimensionality Reduction)
    斯坦福第十三课:聚类(Clustering)
    斯坦福第十二课:支持向量机(Support Vector Machines)
    斯坦福第十一课:机器学习系统的设计(Machine Learning System Design)
    斯坦福第十课:应用机器学习的建议(Advice for Applying Machine Learning)
    斯坦福第九课:神经网络的学习(Neural Networks: Learning)
    斯坦福第八课:神经网络表述(Neural Networks: Representation)
    斯坦福第七课:正则化(Regularization)
  • 原文地址:https://www.cnblogs.com/wangbiaohistory/p/14586028.html
Copyright © 2011-2022 走看看