什么是kafka?
kafka是一个流式消息处理平台。解决应用解耦,异步消息,消峰
主要有三个方面支持:
1.数据注入:提供流的发布和订阅
2.数据存储:存储流数据支持故障容错
3.流处理:对实时的流进行处理和分析
四种核心api
生产者:发布事件流到kafka一个或多个主题
消费者:订阅kafka的一个或多个主题,处理流事件
连接器:将kafka主题和已有数据源进行连接,数据可以相互导入和导出
流处理:从kafka主题消费输入流--->处理数据---->产生输出流到主题
生产者
1.将消息写入到主题,但是并不关心写入到那个分区,kafka会默认设置分区。主分区提供对外的 读写,副本同步主副本的数据。当主副本崩溃时候,选举出新的副本变主副本
2.可以指定消息发布到那个分区,通过消息的键和分区器完成
消费者
1.订阅一个或多个主题,并且按照消息存入的顺序读取
2.kafka保证一个分区只能被一个消费者使用,消费者端关闭zookeeper 注册中心上分区的偏移量状态不会消失
3.消费者和分区之间的映射称之为消费者对分区的所有权关系
broker 和集群
一个独立的kafka服务器称之为broker.单个broker可以有上千个分区,每秒百万级别的消息量。
消息保留策略
保留一段时间的消息。eg :自动清除七天之前的数据
保留一定数据量的消息。eg:当消息数量达到1GB,旧的消息将会被清理