消息中间件系列教程(04) -RabbitMQ -简介&安装

简介: 消息中间件系列教程(04) -RabbitMQ -简介&安装

1. 简介

RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。

RabbitMQ是由RabbitMQ Technologies Ltd开发并且提供商业支持的。该公司在2010年4月被SpringSource(VMWare的一个部门)收购。在2013年5月被并入Pivotal。其实VMWare,Pivotal和EMC本质上是一家的。不同的是VMWare是独立上市子公司,而Pivotal是整合了EMC的某些资源,现在并没有上市。

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

AMQP协议介绍:https://baike.baidu.com/item/AMQP/8354716?fr=aladdin

注意:RabbitMQ是采用erlang语言开发的,所以必须有erlang环境才可以运行。

Erlang编程语言最初目的是进行大型电信交换设备的软件开发,是一种适用于大规模并行处理环境的高可靠性编程语言。随着多核处理器技术的日渐普及,以及互联网、云计算等技术的发展,该语言的应用范围也有逐渐扩大之势。


Erlang— 初衷理念实现抗高并发语言


百度百科介绍:https://baike.baidu.com/item/Erlang%E8%AF%AD%E8%A8%80/20864044?fr=aladdin

2. 几种主流MQ的对比

ActiveMQ RabbitMQ Kafka
优点 遵循JMS规范,安装方便 集成Erlang天生的并发性,最初用于金融行业,稳定性和安全性有保障 依赖Zookeeper,可动态扩展节点,高性能、高吞吐量、无限扩容、消息可指定追溯
缺点 有可能会丢失消息。现在的中心是下一代产品apollo上,所以5.x的产品不怎么维护了 Erlang语言难度较大,不支持动态扩展 严格的顺序机制,不支持消息优先级,不支持标准的消息协议,不利于平台迁移
支持协议 AMQP,OpenWire,Stomp,XMPP AMQP
应用 适用于中小企业,不适合千个队列的应用 适合对稳定性要求高的企业及应用 应用在大数据日志处理或对实时性,可靠性(少量数据丢失)要求比较低的场景应用

3. RabbitMQ的安装

安装RabbitMQ有两个主要步骤:

  1. 安装Erlang语言
  2. Scot(Rabbit环境需要Scot)
  3. 安装Rabbit

Linux下参考:《在linux下安装配置rabbitMQ详细教程》

Mac下参考:《MacOS下安装RabbitMQ》

Windows下参考:《Windows 下安装RabbitMQ服务器及基本配置》

我的系统是MacOS,安装界面如下:

安装成功后:

进入rabbitmq的安装目录:

/usr/local/Cellar/rabbitmq/3.8.2/sbin

启动RabbitMQ:

./rabbitmq-server

启动成功后,浏览器输入(账号密码都是guest):http://localhost:15672

附录(Mac下RabbitMQ相关的命令):

1.安装

shell brew install rabbitmq

2.启动及关闭RabbitMQ服务(进入安装目录的sbin目录后操作)

  • 2.1前台启动
shell sudo ./rabbitmq-server

shell sudo /usr/local/Cellar/rabbitmq/3.7.7_1/sbin/rabbitmq-server-detacted
  • 2.2 后台启动:
shell sudo ./rabbitmq-server -detached

3.后台关闭

shell sudo ./rabbitmqctl stop


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
4月前
|
消息中间件 存储 Java
RocketMQ(一):消息中间件缘起,一览整体架构及核心组件
【10月更文挑战第15天】本文介绍了消息中间件的基本概念和特点,重点解析了RocketMQ的整体架构和核心组件。消息中间件如RocketMQ、RabbitMQ、Kafka等,具备异步通信、持久化、削峰填谷、系统解耦等特点,适用于分布式系统。RocketMQ的架构包括NameServer、Broker、Producer、Consumer等组件,通过这些组件实现消息的生产、存储和消费。文章还提供了Spring Boot快速上手RocketMQ的示例代码,帮助读者快速入门。
|
5月前
|
消息中间件 存储 RocketMQ
消息中间件-RocketMQ技术(二)
消息中间件-RocketMQ技术(二)
|
5月前
|
消息中间件 存储 中间件
消息中间件-RocketMQ技术(一)
消息中间件-RocketMQ技术(一)
|
3月前
|
消息中间件 存储 Apache
探索 RocketMQ:企业级消息中间件的选择与应用
RocketMQ 是一个高性能、高可靠、可扩展的分布式消息中间件,它是由阿里巴巴开发并贡献给 Apache 软件基金会的一个开源项目。RocketMQ 主要用于处理大规模、高吞吐量、低延迟的消息传递,它是一个轻量级的、功能强大的消息队列系统,广泛应用于金融、电商、日志系统、数据分析等领域。
152 0
探索 RocketMQ:企业级消息中间件的选择与应用
|
4月前
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
167 1
【Docker项目实战】Docker部署RabbitMQ消息中间件
|
3月前
|
消息中间件 存储 Java
吃透 RocketMQ 消息中间件,看这篇就够了!
本文详细介绍 RocketMQ 的五大要点、核心特性及应用场景,涵盖高并发业务场景下的消息中间件关键知识点。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
吃透 RocketMQ 消息中间件,看这篇就够了!
|
4月前
|
消息中间件 存储 JSON
rabbitmq基础教程(ui,java,springamqp)
本文提供了RabbitMQ的基础教程,包括如何使用UI创建队列和交换机、Java代码操作RabbitMQ、Spring AMQP进行消息发送和接收,以及如何使用不同的交换机类型(fanout、direct、topic)进行消息路由。
48 0
rabbitmq基础教程(ui,java,springamqp)
|
4月前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
251 12
|
4月前
|
消息中间件 安全 Java
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
126 13
|
3月前
|
消息中间件 存储 Kafka
MQ 消息队列核心原理,12 条最全面总结!
本文总结了消息队列的12个核心原理,涵盖消息顺序性、ACK机制、持久化及高可用性等内容。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。