• RabbitMQ:安装与部署


    官方网站:https://www.rabbitmq.com

    RabbitMQ拥有数万计的用户,是最受欢迎的开源消息队列之一,从T-MobileRuntastic,RabbitMQ在全球范围内用于小型初创企业和大型企业。

    RabbitMQ轻量级,易于在本地和云端部署,它支持多种消息协议。RabbitMQ可以部署在分布式和联合配置中,以满足大规模、高可用性要求。

    RabbitMQ在许多操作系统和云环境中运行,并为大多数流行语言提供了广泛的开发者工具

    我们首先还是来看看如何进行安装。

    安装消息队列

    下载地址:Downloading and Installing RabbitMQ — RabbitMQ

    由于除了消息队列本身之外还需要Erlang环境(RabbitMQ就是这个语言开发的)所以我们就在我们的Ubuntu服务器上进行安装。

    首先是Erlang,比较大,1GB左右:

     

    sudo apt install erlang

    接着安装RabbitMQ:

     

    sudo apt install rabbitmq-server

    安装完成后,可以输入:

    sudo rabbitmqctl status

    来查看当前的RabbitMQ运行状态,包括运行环境、内存占用、日志文件等信息:

     

    1. Runtime
    2. OS PID: 13718
    3. OS: Linux
    4. Uptime (seconds): 65
    5. Is under maintenance?: false
    6. RabbitMQ version: 3.8.9
    7. Node name: rabbit@ubuntu-server-2
    8. Erlang configuration: Erlang/OTP 23 [erts-11.1.8] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:64]
    9. Erlang processes: 280 used, 1048576 limit
    10. Scheduler run queue: 1
    11. Cluster heartbeat timeout (net_ticktime): 60

    这样我们的RabbitMQ服务器就安装完成了,要省事还得是Ubuntu啊。

    可以看到默认有两个端口名被使用:

    1. Listeners
    2. Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
    3. Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0

    我们一会主要使用的就是amqp协议的那个端口5672来进行连接,25672是集群化端口,之后我们也会用到。

    接着我们还可以将RabbitMQ的管理面板开启,这样话就可以在浏览器上进行实时访问和监控了:

    sudo rabbitmq-plugins enable rabbitmq_management

    再次查看状态,可以看到多了一个管理面板,使用的是HTTP协议:

    1. Listeners
    2. Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
    3. Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
    4. Interface: [::], port: 15672, protocol: http, purpose: HTTP API

    我们打开浏览器直接访问一下:
     



    可以看到需要我们进行登录才可以进入,我们这里还需要创建一个用户才可以,这里就都用admin:
     

    sudo rabbitmqctl add_user 用户名 密码

    将管理员权限给予我们刚刚创建好的用户:

    sudo rabbitmqctl set_user_tags admin administrator

    创建完成之后,我们登录一下页面:

    进入了之后会显示当前的消息队列情况,包括版本号、Erlang版本等,这里需要介绍一下RabbitMQ的设计架构,这样我们就知道各个模块管理的是什么内容了:

    • 生产者(Publisher)和消费者(Consumer):不用多说了吧。
    • Channel:我们的客户端连接都会使用一个Channel,再通过Channel去访问到RabbitMQ服务器,注意通信协议不是http,而是amqp协议。
    • Exchange:类似于交换机一样的存在,会根据我们的请求,转发给相应的消息队列,每个队列都可以绑定到Exchange上,这样Exchange就可以将数据转发给队列了,可以存在很多个,不同的Exchange类型可以用于实现不同消息的模式。
    • Queue:消息队列本体,生产者所有的消息都存放在消息队列中,等待消费者取出。
    • Virtual Host:有点类似于环境隔离,不同环境都可以单独配置一个Virtual Host,每个Virtual Host可以包含很多个Exchange和Queue,每个Virtual Host相互之间不影响。

  • 相关阅读:
    如何有效提升你的论证写作能力?
    从大模型到内容生成,初窥门径的AI新次元
    苹果电脑维护工具:CleanMyMac X让你的Mac焕发新生!
    Js与Jq实战:第十讲:jQuery制作动画
    SegGPT: Segmenting Everything In Context论文笔记
    指针应用(二)
    孜然单授权系统V1.0[免费使用]
    快来看,数据分析BI软件居然也能完成基金变迁大数据分析?
    【Pytorch基础知识】数据的归一化和反归一化
    qt 展示TF卡(USB、SD)内容时,中文乱码问题
  • 原文地址:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/126081990