# RabbitMQ
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang (opens new window)语言编写的,而集群和故障转移是构建在开放电信平台 (opens new window)框架上的。所有主要的编程语言 (opens new window)均有与代理接口通讯的客户端 (opens new window)库。
# 简介
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang (opens new window)语言编写的,而群集和故障转移是构建在开放电信平台 (opens new window)框架上的。所有主要的编程语言均有与代理接口通讯的客户端库 (opens new window)。
# 历史
Rabbit科技有限公司开发了RabbitMQ,并提供对其的支持。起初,Rabbit科技是LSHIFT和CohesiveFT在2007年成立的合资企业,2010年4月被VMware (opens new window)旗下的SpringSource收购。RabbitMQ在2013年5月成为GoPivotal的一部分。
# 基本概念
RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。
RabbitMQ服务支持下列操作系统:
- Linux (opens new window)
- Windows (opens new window)NT 到 10
- Windows Server (opens new window)2003 到 2016
- macOS (opens new window)
- Solaris (opens new window)
- FreeBSD (opens new window)
- TRU64 (opens new window)
- VxWorks (opens new window)
RabbitMQ支持下列编程语言:
- Python (opens new window)
- Java (opens new window)
- Ruby (opens new window)
- PHP (opens new window)
- C# (opens new window)
- JavaScript (opens new window)
- Go (opens new window)
- Elixir (opens new window)
- Objective-C (opens new window)
- Swift (opens new window)
# 主要特性
- 可伸缩性:集群服务
- 消息持久化:从内存持久化消息到硬盘,再从硬盘加载到内存 [1]
# 安装
Erlang与RabbitMQ,安装路径都应不含空格符。
Erlang使用了环境变量HOMEDRIVE与HOMEPATH来访问配置文件.erlang.cookie,应注意这两个环境变量的有效性。需要设定环境变量ERLANG_HOME,并把%ERLANG_HOME%\bin加入到全局路径中。
RabbitMQ使用本地computer name作为服务器的地址,因此需要注意其有效性,或者直接解析为127.0.0.1
可能需要在本地网络防火墙打开相应的端口。 [1]