三、Kafka的架构
1、kafka架构的核心原则
LinkedIn的工程团队开发了Kafka,其背后的动因是,为了创建一个统一的消息传输平台,以适应来自各个应用程序的实时数据传输。
kafka在构思和设计上有着其核心的架构准则:
追求性能极致尽可能简化不必要的功能来实现性能优化分布式架构容错性消息持久化存储尽肯能剥离冗余的功能将部分功能交给消费者应用管理,不提供ack机制可扩展性高吞吐量实时处理这些消息并实时输出处理后的消息低延迟传输2、数据流的生命周期
create(产生数据)-》collect(收集数据)-》process(数据处理)
3、Kafka的工作原理
消息:从生产者生成,通过broker中的topic传输到消费者那里生产者:生成这些流式数据并将其写入某个topic中topic:生产者写入消息的类别。broker:kafka集群包含多个服务器节点,每个节点就是一个broker分区:每个kafka中的topic都是分区的。消费者:订阅某个topic并消费其中的消息。消费者群组:一组逻辑上分在一组kafka消费者被称为消费者群组4、kafka的消息
消息包含一个固定的头部,一组长度均可变的键值对。头部中包含如下字段:一个crc32校验码用于检测内容是否损坏一个所谓的魔法标识符,他的值为0或者1属性标识符:0-2,压缩编码解码器,3时间戳类型,4保留位一个可选的时间戳key的长度实际的key的长度value的长度实际的value5、kafka生产者
产生消息到kafka集群的客户端
6、kafkatopic中的数据持久化
kafka提供了高级抽象。由生产者推送的消息会被持久化存储起来。
7、kafka中topic的划分:partition
kafka的topic被划分为多个partition,并分布在多个broker中。
8、kafka中的消息broker
broker是kafka中很重要的组件,实际上为kafka提供了解耦能力。
9、kafka的消费者
消费者会消费kafka集群中某个topic中的消息。按照有序的方式消费。
四、其他kafka组件
如zookeeper(维持kafka正常运行的组件)
mirroormaker(维护集群镜像数据)
五、kafka编程接口
kafka分为两类编程接口机制:
底层核心api
restapi--为了方便使用,对底层核心api进行rest封装