Kafka介绍
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
Kafka模式
点对点:消费者主动拉取数据,消费后,消息清除。
发布订阅:消费者主动拉取数据,消费后,消息不会被清除。
Kafka集群
1、Kafka集群依赖于Zookeeper。
2、每个Kafka实例都必须有一个唯一整数的broker_id。
3、可以在Zookeeper中执行shell脚本,来进行Kafka集群的全部开启和全部关闭。
4、主题消息默认会保留Kafka实例中7天。
5、集群中,可以设置主题的分区和副本,副本至少一个,且不能超过Kafka节点个数。
6、集群接受主题消息时,默认按照轮询方式进行负载均衡。
Kafka概念
1、生产者发送的消息,会存储在分区对应的log文件中。
2、每个log文件都有一个对应的index文件。
3、消费者发送消息到某个leader中,且flower同部完成,会返回给消费者acknowledge。
4、ISR是一个队列,里面维护着flower同步的时间信息,时间越短,越可能是下一个leader。