MQ同类产品对比以及选型-RabbitMQ的背后故事

         RabbitMQ是采用Erlang语言实现的AMQP开源版本,用于解决JMS消息协议标准化使得大型系统之间应用程序之间的结合变动的脆弱(JMS的解耦特性)。

为什么叫RabbitMQ
      兔子行动非常迅速而且繁殖起来也非常疯狂,所以就把Rabbit用作这个分布式软件的命名----《RabbitMQ实战》。
RabbitMQ产生背景

1、消息队列系统最早由26岁孟买工程师构想,用于解决程序间繁重的通信工作。1983年最早的消息队列软件Teknekron诞生,当时仅用于一些金融交易等系统。

2、随后,诞生了世界上第一个消息队列软件TIB(The Information  Bus)

3、20世纪80年代后期,诞生了多家消息队列系统,例如IBM MQ、微软的MSMQ、TIBCO MQ等消息队列在企业中的应用也愈加广泛。当时这些MQ完全是商用的,企业使用需要付出巨大的代价,并且各个供应商产品之间遵循不同的API协议。

4、2001 JMS(Java Message Servive)诞生,JMS的诞生是因为中小企业对MQ高价格的不满,Java开发者只需要遵循JMS API协议和技术规范即可。由于过分的标准化协议,使得大型系统(这里参照的应该是金融系统)应用程序间的结合变得脆弱,因此需要一个新的标准。

5、2004年,AMQP(Advanced Message Queuing Protocol,高级消息队列协议)开始开发,以解决众多的消息队列需求和拓扑结构问题。通过这一标准可以和任意AMQP供应商提供的MQ服务进行交互。

6、2006年,光阴荏苒时光如梭,一转眼就说到了重点。我们的主角使用Erlang语言实现的AMQP开源版本,RabbitMQ诞生了,同年AMQP协议首次发布。

为什么选择RabbitMQ
     在众多的理由里面我觉得唯一具有差异性的就是“Rabbit是唯一实现了AMQP标准的代理服务器”。

总结:其他理由诸如
1.商业化运营,社区活跃,WEB管理和监控,集群扩展容易(不支持动态扩展),高并发(Erlang特性,直接问题就是维护性降低)这些条件对于使用MQ服务的场景来说成本都可以接受;
2.RabbitMQ使用ProtoBuf序列化消息,相比XML具有数据量小3-10倍,速度快20-100倍,易于编程,减少语义的歧义。关于这个问题,这是ProtoBuf对比XML的优势,对比JSON这个优势也就没有了。
3.支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX,持久化。这个看语言选择,但是我觉得这是产品运营优势,而不是MQ服务优势。
总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值