RabbitMQ 介绍
消息队列的领先解决方案
RabbitMQ 是一个开源的消息代理和队列服务器,用于在分布式系统之间共享数据。
RabbitMQ 是一个实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ 服务器是用 Erlang 语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
RabbitMQ 最初是由金融系统开发,用于在分布式系统之间可靠地传递消息。它易于使用,可以在多种操作系统上运行,支持多种消息协议。RabbitMQ 可以部署在分布式和联合配置中,以满足高规模、高可用性的需求。
消息代理在应用程序之间传递消息,避免消息丢失或阻塞处理。RabbitMQ 提供了消息持久化、路由、负载均衡等功能,使其成为企业级应用程序的理想选择。它支持多种消息协议,包括 AMQP 0-9-1、STOMP、MQTT 等,并且可以通过插件扩展功能。
RabbitMQ 的核心概念包括生产者(发送消息)、消费者(接收消息)、队列(存储消息)和交换器(路由消息)。这种架构允许应用程序解耦,提高系统的可扩展性和可靠性。
在微服务架构中,RabbitMQ 常被用作服务之间的通信桥梁。它可以帮助解决服务之间的耦合问题,实现异步通信,提高系统的响应能力和容错能力。此外,RabbitMQ 还广泛应用于任务队列、事件驱动架构、日志收集等场景。
核心特点
RabbitMQ 的强大功能
了解 RabbitMQ 的关键特性,这些特性使其成为消息队列的首选解决方案
可靠性
RabbitMQ 提供了消息持久化、传输确认和发布确认等功能,确保消息不会丢失。
灵活的路由
通过交换机和绑定规则,消息可以灵活地路由到一个或多个队列,支持多种路由模式。
集群和高可用
RabbitMQ 可以部署为集群,队列可以在多个节点上镜像,提供高可用性和故障转移。
多协议支持
原生支持 AMQP 0-9-1,并通过插件支持 MQTT、STOMP、HTTP 等协议。
插件系统
丰富的插件生态系统,可以扩展 RabbitMQ 的功能,如管理界面、协议支持等。
安全性
提供身份验证、授权和 SSL/TLS 支持,确保消息传输的安全性。
安装要求
操作系统兼容性
RabbitMQ 支持多种操作系统,以下是各平台安装要求
操作系统 | 版本要求 | Erlang 要求 | 备注 |
---|---|---|---|
Windows
|
Windows 10/11, Server 2016+
|
Erlang 25.0+ | 支持安装程序或 Docker 方式 |
macOS
|
macOS 10.14+
|
Erlang 24.0+ | 推荐使用 Homebrew 安装 |
Ubuntu/Debian
|
Ubuntu 20.04+, Debian 10+
|
Erlang 25.0+ | 提供官方APT仓库 |
RHEL/CentOS
|
RHEL/CentOS 7+
|
Erlang 25.0+ | 提供官方YUM仓库 |
Docker
|
Docker 19.03+
|
已包含 | 官方提供Docker镜像 |
兼容性说明
平台与协议兼容性
RabbitMQ 具有出色的跨平台兼容性,可以在多种操作系统上运行,包括 Windows、Linux、macOS 等。其核心协议 AMQP 0-9-1 被广泛支持,几乎所有主流编程语言都有相应的客户端库。
通过官方插件,RabbitMQ 还支持其他消息协议:
- MQTT - 适用于 IoT 设备
- STOMP - 简单文本协议
- HTTP - 通过 Web STOMP 和 Web MQTT
- AMQP 1.0 - 企业级消息协议
RabbitMQ 可以与多种数据库和系统集成,包括 MySQL、PostgreSQL、Redis 等,也可以通过插件与 Kafka、Elasticsearch 等系统集成。
许可与费用
开源免费
Mozilla 公共许可证
RabbitMQ 采用 Mozilla 公共许可证 (MPL) 的开源许可模式,这意味着:
-
完全免费使用,包括商业用途
-
可自由修改源代码
-
拥有活跃的社区支持
-
提供商业支持选项
最新动态
RabbitMQ 新闻与更新
了解 RabbitMQ 的最新版本、功能更新和社区动态
资源下载
获取 RabbitMQ
下载最新版本的 RabbitMQ 及相关工具
RabbitMQ 服务器
最新稳定版本:3.11.16 (2023年10月发布)
- 操作系统
- 下载链接
- SHA256 校验