在被SpringSource收购后,2010年8月,RabbitMQ终于推出了一个大的升级版2.0,9月和10月则是2.0的Bug修复版2.1和2.11。强烈推荐所有使用1.**的用户升级。
最大改变
1. 消息存储引擎质的提升。
以前在1.*里,所有消息必须常驻内存,这样当有某个用户来不及消费全部消息而导致消息服务器可用内存急骤下降,最终进入了“消息保护”模式即只允许消费者消费消息,而不允许生产者生产消息。在2.*里,只会存入少量的消息在内存,当内存的消息快消费完时,RabbitMQ会自动从硬盘上加载剩余的消息,整个过程对消息的使用者透明。同时伴随着的就是重启RabbitMQ的速度大大提升,对消息队列的并发访问支持更好。
因为存储机制的改变,“修复”了1.*里著名的异常persiter timeout,见RabbitMQ 1.7.0 starting persister timeout
当然,因为消息储存的二进制结构改变,2.*版的消息文件不兼容于1.*版的,升级的代价就是以前的所有权限设置和持久化的消息全没了,只能“从头再来”。
2. AMQP协议从0.8升级到0-9-1
很多0-8协议里模糊的地方,0-9-1增强了。并且废除了0-8里很少用的一些Classes。对exchange路由的支持更好了。相应的Java和.NET客户端也提供了对新协议的支持。
3. 其它改进
提供了异步“统计”事件接口,大大增强了客户端在运行时对RabbitMQ服务器状态的查询。消息处理性能大大提高。
安装
详见http://www.rabbitmq.com/install.html。Windows可下载ZIP包,执行批处理文件rabbitmq-server.bat
即可运行RabbitMQ,或者使用rabbitmq-service.bat
来启动RabbitMQ作为Windows的标准服务运行。Debian和RPM可以下载对应的安装包,如果装不上,可以下载rabbitmq-server-generic-unix-2.1.1.tar.gz
通用的“绿色”程序,无须安装,直接运行:)
CentOS安装参考RabbitMQ 1.8.0 CentOS 安装和启动
注意安装RabbitMQ,须先安装ErlangR13以上版本。
配置
修改RabbitMQ/rabbitmq.config(不同平台在不同的位置,具体见http://www.rabbitmq.com/install.html),注意此文件不同于rabbitmq.conf
。rabbitmq.conf
包括是环境变量的设置,象RabbitMQ的SBIN目录,RabbitMQ运行结点的名字等。RabbitMQ则是RabbitMQ运行后的一些条件配置。