ZeroMQ及其安全通信机制简介,zeromq( 三 )


快速持久化,可以在O(1)的系统开销下进行消息持久化;高吞吐ActiveMQ:是Apache下的一个子项目,介于ZeroMQ和RabbitMQ之间 。类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景而且只需付出低消耗 。被誉为消息中间件的“瑞士军刀” 。但是ActiveMQ不够轻巧,而且对于队列较多的情况支持不好,据说还有丢消息的情况 。
Kafka,Mq和Redis作为消息队列使用时的差异有哪些?

ZeroMQ及其安全通信机制简介,zeromq


Kafkakafka是个日志处理缓冲组件,主要在大数据信息处理中使用 。和传统的消息队列相比简化了队列结构和功能,以文件流形式处理存储(持久化)消息(主要是日志) 。日志信息通常数据量巨大,处理组件一般会处理不过来,所以有了缓冲层kafka 。kafka支持巨大的日志吞吐量 。为了防止数据丢失,其消息被消费后不会直接丢弃,要多存储一段时间,等超过设置的时间阈值才会丢弃 。
这是mq和redis所不具备的 。主要特点如下:巨型存储量: 支持TB甚至PB级别数据 。高吞吐,高IO:一般配置的服务器就可实现单机每秒100K条以上的消息传输 。消息分区,分布式消费:能保证消息顺序传输 。支持离线数据处理(hadoop集群)和实时数据处理 。横向扩展:支持在线水平扩展,以支持更大数据处理能力 。
redisredis是一个高性能的、原子操作的内存键值对nosql 。支持高速访问,可用做消息队列的存储,但是不具备消息队列的任何功能和逻辑,要做为消息队列来使用的话,队列功能和逻辑要通过上层应用来自己实现 。MQ,消息队列我们以RabbitMQ为例来做介绍 。它是用Erlang语言开发的开源消息队列,支持多种协议包括AMQP,XMPP, SMTP, STOMP,适合于企业级的开发 。
MQ支持Broker构架,消息发送给客户端时需要在中心队列排队 。对路由,负载均衡或者数据持久化都有很好的支持 。其他更多消息队列还有ActiveMq,ZeroMq等,功能上大同小异 。有专门测试的结果表明,并发吞吐TPS比较,ZeroMq 最好,RabbitMq 次之,ActiveMq 最差 。更多信息,请关注虫虫,一起讨论学习 。

推荐阅读