• 使用docker快速构建RabbitMQ


      有时间,我们需要rabbitmq测试一下,如果按照原方案部署一个rabbitmq,比较麻烦,这个时候可以使用docker快速构建一个rabbitmq来使用。

      rabbitmq:management (推荐)

      我们可以通过官方的镜像rabbitmq:management来实现,如果是直接使用命令行:

        # 拉取镜像
        sudo docker pull rabbitmq:management
        # 创建
        sudo docker run -d --name rabbit -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 rabbitmq:management
        
        # 说明
        # -p 5672:5672 -p 15672:15672    端口映射,将宿主机中的端口映射进容器中,5672是AMPQ协议端口,15672是后台管理页面端口
        # -e RABBITMQ_DEFAULT_USER=admin    设置后台管理登录账号
        # -e RABBITMQ_DEFAULT_PASS=123456    设置后台管理登录账号的密码

      运行之后就可以通过宿主机的15672端口访问后台管理了。

      此外,为了方便我们的操作,我们可以采用docker-compose来管理,一个简单的docker-compose.yml如下:  

    version: '2'
    services:
      rabbit:
        image: rabbitmq:management
        container_name: rabbit
        restart: always
        expose:
          - 5672
          - 15672
        ports:
          - 5672:5672
          - 15672:15672
        environment:
          - RABBITMQ_DEFAULT_USER=admin
          - RABBITMQ_DEFAULT_PASS=123456
    networks:
      default:
        driver: bridge

      这样就可以使用docker-compose来管理了

      rabbitmq:latest

      有时候,我们本地已经存在一个rabbitmq的镜像了,如果不想再获取一个rabbitmq:management镜像,我们可以采用sh脚本来管理,一个rabbit.sh如下:  

    rabbit.sh
    
    #!/bin/bash
    
    container_name=rabbit   # 容器名称
    ampq_port=5672          # 宿主机映射的AMPQ协议端口
    management_port=15672   # 宿主机映射的后端管理端口
    user=admin              # 创建的后台管理用户
    password=123456         # 创建用户的密码
    vhost=/                 # 用户虚拟机
    image=rabbitmq:latest   # rabbitmq镜像
    
    #停止
    rabbitmq_stop(){
      echo 停止容器:`sudo docker stop $container_name`
    }
    #启动
    rabbitmq_start(){
      echo 启动容器:`sudo docker start $container_name`
      sleep 5 # 等待容器起来,如果时间不够,可以适当延长
    
      plugin_exists=`sudo docker exec -i $container_name /bin/bash -c "rabbitmq-plugins list | grep '*' | grep 'rabbitmq_management '"`
      if [ -z "$plugin_exists" ];then
        echo 启用management:
        sudo docker exec -i $container_name rabbitmq-plugins enable rabbitmq_management
        echo 重启中:sudo docker restart $container_name
        sleep 5 # 等待容器起来,如果时间不够,可以适当延长
        echo 创建用户并授权:
        sudo docker exec -i $container_name rabbitmqctl add_user $user $password
        sudo docker exec -i $container_name rabbitmqctl set_user_tags $user administrator
        sudo docker exec -i $container_name rabbitmqctl set_permissions --vhost $vhost $user '.*' '.*' '.*'
        sudo docker exec -i $container_name /bin/bash -c "echo management_agent.disable_metrics_collector=false > /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf"
        sudo docker restart $container_name 
      fi
    }
    #停止并移除
    rabbitmq_down(){
      rabbitmq_stop
      echo 删除容器:`sudo docker rm $container_name`
    }
    #重新启动
    rabbitmq_restart(){
      rabbitmq_stop
      rabbitmq_start
    }
    #查看状态
    rabbitmq_status(){
      sudo docker ps -a | grep rabbitmq | grep "$container_name"
    }
    #创建
    rabbitmq_create(){
      echo 创建镜像:`sudo docker create --name rabbit -p $ampq_port:5672 -p $management_port:15672 --restart always $image`
    }
    #创建并启动
    rabbitmq_up(){
      rabbitmq_create
      rabbitmq_start
    }
    
    if [ ! -z "$1" ];then
      rabbitmq_$1
      exit 0
    fi
    
    echo "
    Usage:    $0 COMMAND
    
    可用命令:
    start    启动
    create   创建
    stop     停止
    up       创建并启动
    down     停止并删除
    status   查看容器节点信息
    restart  重新启动"

      一些固定的参数,在这个文件内部配置好就行了,保存后可以进行授权可执行,再启动了  

        # 授权
        sudo chmod +x rabbit.sh
        # 启动
        ./rabbit.sh up
        # 停止
        ./rabbit.sh down
        # 查看帮助
        ./rabbit.sh
  • 相关阅读:
    ue4 官网IK流程记录
    ue4-C++中加载一个蓝图类(二)-C++中绑定Blueprint武器
    UE4 c++ 创建刚体Cube
    UE4的AI学习(1)——基本概念
    UE4的AI学习(2)——官方案例实例分析
    行为树(Behavior Tree)实践(1)– 基本概念
    Animation Blueprint, Set Custom Variables Via C++
    ue4 c++ anim notify
    ue4 动画相关方法杂记
    [UE4]Montage动画设置Slot
  • 原文地址:https://www.cnblogs.com/shanfeng1000/p/16261011.html
Copyright © 2020-2023  润新知