• Centos6.5 安装 RabbitMQ 3.7.11


    RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    它是一个很强的消息队列,是个中间件。

    ## 安装rabbitmq
    # 安装依赖
        yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto
    # 安装或更新EPEL库
        yum -y install epel-release 
    # 或:
        wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
        rpm -ivh epel-release-6-8.noarch.rpm
    
    
    # 安装erlang  下载 https://bintray.com/rabbitmq/rpm/erlang
    # 注意el6 和 el7的区别
        rpm -ivh erlang-21.1.2-1.el6.x86_64.rpm  # centos6.5用el6 
    ## 检查
        erl # 进入erlang 出现:Erlang/OTP 21 [erts-10.1.2] [source] [64-bit]...
        halt().  # 退出 erlang
        netstat -nltp # 端口4369即是erlang的进程
        
        
    # 安装MQ  下载 # http://www.rabbitmq.com/download.html
        rpm -ivh rabbitmq-server-3.7.11-1.el6.noarch.rpm

    如果是CentOS7以上,安装时会稍有不同,除了注意版本的选择外,可能还需要安装依赖:

    yum -y install socat

    并且安装了erlang后,进程中看不到4369端口打开,但是当启动rabbitmq-server时,erlang会一起启动。 

    systemctl start rabbitmq-server

    简单的服务启动与停止

    ## 服务管理命令
    service rabbitmq-server start  # 启动
    service rabbitmq-server status # 状态
    service rabbitmq-server stop   # 停止
    rabbitmq-plugins enable rabbitmq_management # 启用15672 web管理
    # 如果执行这条命令,会在/etc/rabbitmq/ 下生成 文件 enabled_plugins
    ## 常用命令 rabbitmqctl # 帮助 rabbitmqctl status # 状态 同上 rabbitmqctl stop # 停止服务 会将节点及应用程序同时关闭 # 由于同一节点可能运行除rabbitmq 其他erlang程序,停止整个节点是不可取的 rabbitmqctl stop_app # 保持25672不停 rabbitmqctl start_app # 启动5672 和
    15672

    # 3.7.11 默认情况下guest用户只能localhost访问。可以添加账号用于远程登录,或者启用guest远程。

    ## 用户管理 
    rabbitmqctl add_user admin 123456 # 添加用户admin
    rabbitmqctl delete_user admin     # 删除用户
    rabbitmqctl change_password admin 111111 # 修改密码
    rabbitmqctl list_users            # 查看用户列表
    rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"  # 赋予访问 / 权限
    rabbitmqctl set_user_tags admin administrator          # 赋予管理员权限
    
    cp /usr/share/doc/rabbitmq-server-3.7.11/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
    # 复制个配置文件到此后,修改内容:
      {loopback_users, []}, # 去掉此行前面的 %% 即启用此配置(最后面的逗号可能要去掉)
    # 重启服务后,guest即可远程登录
    service rabbitmq-server restart


    ## 用户角色 参考:
    链接:https://www.jianshu.com/p/e3af4cf97820
    用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
    (1) 超级管理员(administrator)
    可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
    (2) 监控者(monitoring)
    可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
    (3) 策略制定者(policymaker)
    可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。与administrator的对比,administrator能看到这些内容。
    (4) 普通管理者(management)
    仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
    (5) 其他
    无法登陆管理控制台,通常就是普通的生产者和消费者。

    ## 以下博客都对操作RabbitMQ有详细介绍。
    # springboot操作RabbitMQ使用参考:https://www.cnblogs.com/ityouknow/p/6120544.html
    # C# 操作RabbitMQ使用参考: https://www.cnblogs.com/richieyang/p/5492432.html
    # Node.js操作RabbitMQ https://www.cnblogs.com/wukong-holmes/p/9306733.html

    升级

    有一台CentOS7.5  Erlang 和 rabbitmq-server 都已经版本过低,官方已经不再支持。

    升级时直接准备好 rpm 和 配置文件,然后写个批处理执行,完成。缺点是没有对数据备份,会有短暂的丢失。

    在/opt/下放入文件: 

    rabbitmq-server-3.7.15-1.el7.noarch.rpm  
    erlang-21.3.8.4-1.el7.x86_64.rpm

    原有的/etc/rabbitmq/下的配置文件可以继续使用,新版本在启动服务时,会自动读取原有配置文件。

    也可根据实际需求修改,如果没有,也可添加文件:

    rabbitmq.config 

    [
        {rabbit, [{log_levels, [{channel, warning}, {connection, warning}, {federation, warning}, {mirroring, warning}]},
                     {loopback_users, []}
                 ]}
    ].

    enabled_plugins

    [rabbitmq_management,rabbitmq_top].

    rabbitmq-env.conf

    RABBITMQ_LOG_BASE=/db/logs/rabbitmq

    使用 rpm -qa |grep erlang 以及 rpm -qa |grep rabbitmq 列出旧的软件名称,然后加入批处理中卸载。

    使用 netstat -nltp 找出4369端口的 PID ,加入批处理中 kill

    最后执行批处理:

    systemctl stop rabbitmq-server
    
    kill -9 24593   # erlang 4369
    
    rpm -e --nodeps erlang-test_server-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-erts-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-mnesia-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-xmerl-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-inets-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-cosEvent-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-edoc-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-tv-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-cosEventDomain-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-eldap-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-ic-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-eunit-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-webtool-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-debugger-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-reltool-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-typer-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-crypto-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-syntax_tools-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-runtime_tools-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-asn1-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-orber-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-cosTime-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-ssh-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-os_mon-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-cosTransactions-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-diameter-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-observer-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-megaco-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-dialyzer-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-kernel-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-compiler-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-gs-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-public_key-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-tools-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-cosNotification-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-otp_mibs-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-erl_docgen-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-appmon-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-toolbar-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-jinterface-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-wx-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-common_test-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-stdlib-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-hipe-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-snmp-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-ssl-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-sasl-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-cosProperty-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-pman-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-cosFileTransfer-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-percept-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-erl_interface-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-parsetools-R16B-03.18.el7.x86_64
    rpm -e --nodeps erlang-et-R16B-03.18.el7.x86_64
    
    rpm -e --nodeps rabbitmq-server-3.3.5-34.el7.noarch
    cd /opt
    
    rpm -Uvh erlang-21.3.8.4-1.el7.x86_64.rpm
    rpm -Uvh rabbitmq-server-3.7.15-1.el7.noarch.rpm
    
    systemctl start rabbitmq-server 
    
    rabbitmqctl change_password guest oldpwd
    rabbitmq-plugins enable rabbitmq_management 

    登录相应的 http 地址,使用旧密码登录,检查exchage和queue等。 因为批处理里自动改了旧密码,所以,原有的应用程序可直接访问 rabbitmq-server 

  • 相关阅读:
    Python数据库 4.Python与数据库的交互
    Python数据库 3.MongoDB(区分大小写)
    Python数据库2.Redis数据库
    Python数据库1. 数据库简介
    Python基础 12.常用模块
    Python基础 11.Vim使用
    Python基础 10.linux基本命令
    栈理解
    java集合Collection
    斐波那契函数
  • 原文地址:https://www.cnblogs.com/frx9527/p/rabbitmq.html
Copyright © 2020-2023  润新知