关于消息队列
对于一个消息系统,提高吞吐量的同时,还要保证消息的可靠性,以及在高峰期的稳定性;当然如果能自适应业务量那就再好不过了。
常见的消息系统比如
ActiveMQ
JAVA apache开源项目
子项目:
RabbitMQ
Erlang 编写,是一个AMQP协议的实现。
文章:
AMQP 与 RabbitMQ http://www.infoq.com/cn/articles/AMQP-RabbitMQ
Erlang 与 RabbitMQ http://codemacro.com/2013/04/11/rabbitmq-erlang/
分布式消息中间件 http://spartan1.iteye.com/blog/1180247
ZeroMQ
http://zeromq.org 严格来说不算是一个典型的MQ系统,只是在socket之上封装了很多常见的方法模式。
C++ 开源 https://github.com/zeromq/libzmq
文章:
史上最快的消息队列 ZMQ http://news.cnblogs.com/n/154000/
各个方案的比较和评测
消息队列产品大比拼 http://www.searchsoa.com.cn/showcontent_48449.htm
消息中间件的技术选型心得 http://blog.csdn.net/chszs/article/details/8479072
ActiveMQ or RabbitMQ or ZeroMQ http://stackoverflow.com/questions/731233/activemq-or-rabbitmq-or-zeromq-or
Message Queue Evaluation Notes http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes
除了以上系统 ,目前还有 Kafka(来自linkedin的开源MQ项目) ,Beanstalkd, Amazon SQS 等相关的服务和产品。
多种消息系统,有不同的编程语言的实现,有不同的典型应用场景,有各自的优缺点。大多数比较的结构都只有一个: 那就是根据自己的需求和业务场景选择最适合的!
附: MQTT 协议规范
MQTT V3.1 Protocol Specification
http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html