RabbitMQ,安装过程

本文探讨了RabbitMQ作为开源AMQP消息队列的实践应用,强调其在分布式系统中的解耦能力、异步处理和流量削峰优势,以及为何在高并发、高性能和高可用场景中受欢迎。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RabbitMQ

MQ简介

​ 在计算机科学中,消息队列(英语:Message queue)是一种进程间通信或统一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列中的记录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列互交。消息会保存在队列中,直到接收者取回它。

实现

​ 消息队列常常保存在链表结构中。拥有权限的进程可以向消息队列中写入或读取消息。

​ 目前,有很多消息队列有很多开源的实现,包括JBoss MessagingJORAMApache ActiveMQSun Open Message QueueIBM MQApache QpidHTTPSQS

​ 当前使用较多的消息队列有RabbitMQRocketMQActiveMQKafkaZeroMQMetaMQ等,而部分数据库如RedisMySQL以及phxsql也可实现消息队列功能。

特点

​ MQ是消费者-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。

​ 注意:

​ 1、AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不收客户端/中间件不同产品,不同开发语言等条件的限制。

​ 2、JMS,Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件的API,用于在这两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。常见的消息队列,大部分都实现了JMS API,如 ACtiveMQRedis以及RabbitMQ等。

优缺点

优点

​ 应用耦合、异步处理、流量削峰

  • 解耦

    传统模式,每个系统接入都要改代码,过于麻烦

    中间件模式,每个系统需要什么消息,自己去中间件拿,生产者不需要改代码

    中间件模式的优点:

    将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改。

  • 异步

    传统模式:

​ 传统模式的缺点:

​ 一些非必要的业务以同步的方式运行,太耗费时间。

​ 中间件模式:

​ 将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要任何修改

  • 削峰

    传统模式

    传统模式的缺点:

    并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常

    中间件模式:

    中间件模式的优点:

    系统A慢慢的按照数据库能处理的并发量,从消息队列中慢慢拉取消息。在生产中,这个短暂的高峰期积压是允许的。

    缺点

    系统可用性降低、系统复杂性增加

使用场景

​ 消息队列,是分布式系统中重要的组件,其通用的使用场景可以简单地描述为:当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用消息队列的时候

​ 在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。

为什么使用RabbitMQ

​ AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

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

​ 总结如下:

  • 基于AMQP协议
  • 高并发(是一个容量的概念,服务器可以接受的最大任务数量)
  • 高性能(是一个速度的概念,单位时间内服务器可以处理的任务数)
  • 高可用(是一个持久的概念,单位时间内服务器可以正常工作的时间比例)
  • 强大的社区支持,以及很多公司都在使用
  • 支持插件
  • 支持多语言

win10安装

RabbitMQ官网:https://www.rabbitmq.com/

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CZEMkzo6-1654788490449)(D:\demo\谷粒商城笔记\MQ\RabbitMQ.assets\image-20220609191756519.png)]

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安装Erlang环境

安装Erlang

​ 下载完rabbitmq安装包后,点击安装会提示需要Erlang环境,然后跳转到下载页面

​ Erlang环境下载页面:https://www.erlang.org/downloads

在这里插入图片描述

​ 选择64位安装包,然后一路next下去即可,安装完成后,需要配置环境变量

配置环境变量
  • 新建系统变量,ERLANG_HOME,文件夹选择刚刚Erlang安装的位置

在这里插入图片描述

  • 编辑Path变量,添加%ERLANG_HOME%\bin

在这里插入图片描述

安装RabbitMQ

  • 运行安装包

在这里插入图片描述

  • 修改安装位置,不建议安装到C盘

在这里插入图片描述

  • 开始安装

在这里插入图片描述

  • 安装完成

在这里插入图片描述

  • 安装完成后,进入http://localhost:15672 ,win10安装自带可视化页面,直接进入即可,账号密码都是:guest
  • 可视化页面默认端口是:15672
  • 注意,guest用户只能在localhost下使用

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值