zoukankan      html  css  js  c++  java
  • Centos7搭建单机RabbitMQ

    Centos7搭建单机RabbitMQ

    必要环境准备

    yum -y install wget make gcc gcc-c++ kernel-devel openssl-devel ncurses-deve
    

    安装erlang

    yum install -y epel-release
    wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
    rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
    yum install -y erlang
    erl -version
    

    或者这样

    新建文件 内容如下vi /etc/yum.repos.d/rabbitmq-erlang.repo

    [rabbitmq-erlang] 
    name=rabbitmq-erlang
    baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/7
    gpgcheck=1
    gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
    enabled=1
    [root@192 ~]# yum install erlang   
    

    安装RabbitMQ

    导入密钥

    rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgke
    rpm --import https://packagecloud.io/gpg.key
    

    为了使用yum存储库,必须在/etc/yum.repos.d/目录下添加一个.repo文件(例如rabbitmq-server.repo)。

    Centos7

    [bintray-rabbitmq-server]
    name=bintray-rabbitmq-rpm
    baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/
    gpgcheck=0
    repo_gpgcheck=0
    enabled=1
    

    Centos8

    [bintray-rabbitmq-server]
    name=bintray-rabbitmq-rpm
    baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/8/
    gpgcheck=0
    repo_gpgcheck=0
    enabled=1
    

    安装rabbitmq

    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.11/rabbitmq-server-3.8.11-1.el7.noarch.rpm  #Centos7
    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.11/rabbitmq-server-3.8.11-1.el8.noarch.rpm  #Centos8
    
    rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    yum install rabbitmq-server-3.8.11-1.el7.noarch.rpm    #Centos7
    yum install rabbitmq-server-3.8.11-1.el8.noarch.rpm    #Centos8
    

    使用

    安装RabbitMQ服务器软件包时,默认情况下未将服务器作为守护程序启动。 在系统引导时默认启动守护程序,以管理员身份运行

    chkconfig rabbitmq-server on
    

    启动服务

    systemctl start rabbitmq-server   #启动服务
    systemctl stop rabbitmq-server    #关闭服务
    

    查看相关的配置选项

    [root@test opt]# rabbitmqctl status
    Status of node rabbit@test ...
    Runtime
    OS PID: 19823
    OS: Linux
    Uptime (seconds): 368
    Is under maintenance?: false
    RabbitMQ version: 3.8.11
    Node name: rabbit@test
    Erlang configuration: Erlang/OTP 23 [erts-11.1.5] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]
    Erlang processes: 277 used, 1048576 limit
    ...........
    

    常见端口

    在正常启动的情况下,节点使用系统的默认值来运行,如果想了解更多更多的配置选项来适合在生产环境下的需求,请参考官方的配置指南。

    注意:节点默认使用rabbitmq用户来运行服务。如果更改了节点数据库或日志的位置,则应该将劝降付给rabbitmq用户

    RabbitMQ常见的一些端口的介绍,

    • 4369: epmd、RabbitMQ 节点和 CLI 工具使用的对等发现服务
    • 5672、5671:AMQP 0-9-1 和 1.0 客户端使用,无需 TLS
    • 25672:用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+ 20000) 除非确实需要这些端口上的外部连接(例如,群集使用联合身份验证或在子网外部的计算机上使用CLI工具),否则这些端口不应公开暴露。 有关详细信息,请参见网络指南。
    • 35672-35682:CLI 工具(Erlang 分发客户端端口)用于与节点通信,动态分配端口(过服务器分发端口+ 10010 计算为服务器分发端口 + 10000)
    • 15672:HTTP API客户端、管理 UI(仅在启用管理插件时)
    • 61613, 61614:没有 TLS和 TLS 的 STOMP 客户端(仅在启用 STOMP 插件时)
    • 1883, 8883: rabbitmq MQTT TCP方式访问的端口 ,比如java订阅发布mqtt消息
    • 15674: RabbitMQ STOMP WebSocket方式访问的端口,比如JS发布订阅消息
    • 15675: RabbitMQ MQTT WebSocket方式访问的端口,比如JS发布订阅消息(rabbitmq-plugins enable rabbitmq_web_mqtt)
    • 15692: abbitmq_prometheus插件中提供了对Prometheus指标收集的支持。该插件以Prometheus文本格式在专用的TCP端口(默认端口15692)上公开所有RabbitMQ指标。

    用户管理

    rabbitmqctl add_user 'admin' 'admin123'  #添加用户admin   密码为admin123
    rabbitmqctl set_user_tags admin administrator
    rabbitmqctl list_users   #列出用户
    rabbitmqctl set_permissions -p "/" "admin" ".*" ".*" ".*"   #授予admin权限 /虚拟主机所有权限
    rabbitmqctl clear_permissions -p "/" "admin"   #撤销权限
    rabbitmqctl delete_user 'admin'  #删除用户
    
    

    每个rabbitmqctl权限管理操作都作用于单个虚拟主机。 批量操作必须编写脚本,虚拟主机的列表来自rabbitmqctl list_vhosts --silent:

    # 假设使用Linux Shell。
    # 授予用户对所有虚拟主机的权限。
    for v in $(rabbitmqctl list_vhosts --silent); do rabbitmqctl set_permissions -p $v "a-user" ".*" ".*" ".*"; done
    

    开启Web管理界面插件

    [root@test opt]# rabbitmq-plugins enable rabbitmq_management
    Enabling plugins on node rabbit@test:
    rabbitmq_management
    The following plugins have been configured:
      rabbitmq_management
      rabbitmq_management_agent
      rabbitmq_web_dispatch
    Applying plugin configuration to rabbit@test...
    The following plugins have been enabled:
      rabbitmq_management
      rabbitmq_management_agent
      rabbitmq_web_dispatch
    
    started 3 plugins.
    

    开启后访问http://ip:15672来访问管理界面,如果不能访问请检查防火墙是否开放端口。

    [root@test opt]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
    success
    [root@test opt]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
    success
    [root@test opt]# firewall-cmd --zone=public --add-port=25672/tcp --permanent
    success
    [root@test opt]# firewall-cmd --reload
    success
    

    其他操作

    查看运行日志

    sudo journalctl --system | grep rabbitmq
    

    查看已启用的端口

    [root@test opt]# rabbitmqctl status | grep Interface
    Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
    Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
    Interface: [::], port: 15672, protocol: http, purpose: HTTP API
    

    查看已启用的插件

    rabbitmq-plugins list
    
  • 相关阅读:
    Path 环境变量
    Scala_ 类_可见性
    ubuntu16.04 注意特别出
    Python基础之文件操作
    python之set集合操作
    python数据类型之字典操作
    python的数据类型之列表list
    Python的条件控制及循环
    使用jmeter做接口测试
    AMD64 专业名词缩写
  • 原文地址:https://www.cnblogs.com/cuianbing/p/14352420.html
Copyright © 2011-2022 走看看