有pub/sub功能,同步和异步都支持,producer.type项设置linux
单条消息的上限用max.message.size项设置安全
消息可能有丢失,在consumer宕机后消息可能有重复投递网络
同一个partition内保证消息顺序,多个partition不保证负载均衡
支持异步发送消息,可配置producer使得在必定时间后发送消息,或是消息累积到必定量后再发送异步
支持Scala、Java、C++、C#、Go、PHP、Python、Ruby,PHP须要5.3.3版本以上oop
PHP版本的client功能还不够丰富设计
支持持久化,消息存储在磁盘上,复杂度为O(1)队列
没有消费反馈,哪些消息已消费由consumer维护(经过记录一个offset值),consumer也能够回滚到之前的位置,从新读取以前读取过的消息进程
异步方式可支持消息的延时投递,queue.time项设置ip
单个队列可以承受的消息容量的极限由queue.size项设置
没有固定的协议
消息的状态由客户端维护,服务端不参与,服务端会在消息保存必定时间(默认为7天)后将其删除
每一个consumer进程属于一个consumer group,一个message只被发给同一个consumer group中的一个consumer进程,所以能够支持queue和topic两种语义
producer发送消息后,broker不会发送ACK给producer
consumer与broker间有负载均衡
在linux系统上使用sendfile系统调用,经过zero-copy技术达到很高的效率
部署难度通常,配置管理还算方便
最新版支持副本机制,解决了单点故障问题
最新版支持镜像功能,可支持消息迁移,但还不太成熟,限制较多,如只能使用默认的patitioner等
水平扩展方便,对业务无影响,Zookeeper管理consumer和broker的加入和退出
也能够不依赖Zookeeper,那么事先须要在配置文件中指定机器信息,集群是静态的,不能变更
消息支持压缩,节省网络开销,目前只支持gzip格式
有安全机制和监控机制
数据可批量导入hadoop,作离线数据分析
设计指导思想是注重吞吐率更胜于注重功能特性
将来会支持流式处理
Scala语言实现,代码行数不到6K,语言不熟悉但代码量不大
开发较活跃,用户量较多,目前还在增加中