Kafka的特点
1) 速度快、高吞吐量、分布式、多分区。
2) 无需停机即可扩展机器。
3) 通过将数据持久化到硬盘以及replication防止数据丢失。
4) 支持多消费者(重要特点)。
5)支持online(实时消费)和offline(离线消费,比如按天消费)的场景。
6)依赖Zookeeer集群,状态信息都写在Zookeeer集群里
7) Kafka消费都采用pull方式,即客户端comsumer主动拉取数据,客户端维护offset。客户端可以根据需要随时随地进行消费,更加灵活,而且对服务端压力小。
适用的场景
对于一些常规的消息系统,kafka是个不错的选择;容错、良好的扩展性及优势性能,kafka的使用主要还是用来处理日志。kafka尚未确保消息的发送与接收绝对可靠,比如消息重发、消息发送丢失等,因此只能用做"常规"的消息系统;到目前为止kafka并没有提供JMS中的"事务性"消息确认机制等企业级特性;