1、kafka概述
1.1 kafka简介
Apache Kafka是一个快速的、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统,使用Scala和java语言编写,能够将消息从一个端点传递到另一个端点,较之传统的中间件(例如:ActiveMQ、RabbitMQ),Kafka具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息处理应用程序。
Kafka官网:http://kafka.apache.org/
1.2 Kafka系统架构
1.3 应用场景
1.3.1 用户的活动跟踪
用户在网站的不同活动消息发布到不同的主题中心,然后可以对这些消息进行实时监测、实时处理。当然,也可以加载到Hadoop或离线处理数据仓库,对用户进行画像。像淘宝、天猫、京东这些大型电商平台,用户的所有活动都要进行追踪的。
1.3.2 日志聚合
1.3.3 限流削峰
1.3.4 高吞吐率实现
Kafka与其他MQ相比,最大的特点就是高吞吐率。为了增加存储能力,Kafka将所有的消息都写入到了低速大容量的硬盘。按理说,这将导致性能损失,但实际上,Kafka仍然可以保持超高的吞吐率,并且其性能并未受到影响。其主要采用如下方式实现了高吞吐率。
- 顺序读写:Kafka将消息写入到了分区partition中,而分区中的消息又是顺序读写的。顺序读写要快于随机读写。
- 零拷贝:生产者、消费者对于Kafka中的消息是采用零拷贝实现的。
- 批量发送:Kafka允许批量发送模式。
- 消息压缩:Kafka允许对消息集合进行压缩。
老铁要是觉得我的笔记总结不错的,可以持续关注下一章节:Kafka原理与过程