zoukankan      html  css  js  c++  java
  • docker stack 部署 rabbitmq 容器

    ===============================================

     2018/5/13_第1次修改                       ccb_warlock

     

    ===============================================

    rabbitmq作为开源的消息中间件目前已经被广泛应用,由于正在进行服务的容器化,所以rabbitmq的容器部署也提上日程。

    由于以swarm作为容器的基础框架,故本篇整理stack中部署容器服务的方式。

     


     一、前提条件

     


     二、部署rabbitmq

     2.1 创建映射的本地目录

    mkdir -p /usr/docker-vol/rabbitmq/conf

     2.2 增加配置文件rabbitmq.config

    vim /usr/docker-vol/rabbitmq/conf/rabbitmq.config

    为了允许guest用户能通过任意ip访问manager界面,故在rabbitmq.config中增加下面的信息。

    [
     {rabbit,     
     [
        {loopback_users, []}
     ]}
    ].

     2.3 编辑rabbitmq-stack.yml

    vim /root/rabbitmq-stack.yml

     # 添加下面的内容,wq保存

    version: '3'
    services:
    
      rabbitmq-mananger:
        image: rabbitmq:mananger # 这里获取带有manager页面的rabbitmq的镜像
        environment:
          - TZ=Asia/Shanghai # 设定容器的时区为亚洲/上海
        volumes:
          # rabbitmq的配置文件
          - /usr/docker-vol/rabbitmq/conf/rabbitmq.config:/etc/rabbitmq/rabbitmq.config
        deploy:
          replicas: 1
          restart_policy:
            condition: on-failure
        ports:
          - 4369:4369
          - 5671:5671
          - 5672:5672
          - 15671:15671
          - 15672:15672
          - 25672:25672
        networks:
          - net01
    
    networks:
      net01:
        external: true # 使用外部同名网络net01,如果对网络没有要求可以去掉networks信息,docker会生成一个默认网络给该服务栈

     2.4 创建服务栈

     1)命令方式

    cd
    docker stack deploy -c rabbitmq-stack.yml rabbitmq-stack

     2)portainer界面方式(推荐)

    登录portainer(如果是根据上面的教程部署的portainer,浏览器访问http://宿主机IP:9000,在stack中增加rabbitmq-stack.yml文件中的内容)

      

     PS.如果需要保证安全,可以不增加配置文件是guest账户不能被其他ip登录manager页面,并创建一个新的管理员账户进行管理。

     通过portainer进入rabbitmq容器的命令行,接着运行下面的命令。

     # 创建admin用户(密码也为admin)

    rabbitmqctl  add_user  admin  admin

     # 设置admin为超级管理员

    rabbitmqctl  set_user_tags  admin  administrator

    # 角色说明:

    • administrator:超级管理员。可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
    • monitoring:监控者。可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
    • policymaker:策略制定者。可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息。与administrator的对比,administrator能查看节点的相关信息
    • management:普通管理者。仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
    • 其他:无法登陆管理控制台,通常就是普通的生产者和消费者。


    # 配置初始的命名空间/给admin

    rabbitmqctl set_permissions -p / admin "admin-*" ".*" ".*"
  • 相关阅读:
    Java中使用Oracle的客户端 load data和sqlldr命令执行数据导入到数据库中
    迁移mysql数据到oracle上
    SQL Developer 警告--无法安装某些模块
    Oracle SQLDeveloper ORA-01017 invalid username/password;logon denied (密码丢失解决方案)
    解决Java连接MySQL存储过程返回参数值为乱码问题
    Tensorflow BatchNormalization详解:2_使用tf.layers高级函数来构建神经网络
    Tensorflow BatchNormalization详解:1_原理及细节
    随机切分csv训练集和测试集
    tf.session.run()单函数运行和多函数运行区别
    tf.train.batch的偶尔乱序问题
  • 原文地址:https://www.cnblogs.com/straycats/p/9033700.html
Copyright © 2011-2022 走看看