kafka总结

kafka总结
kafka是一个分布式、分区的、多副本的、发布-订阅模式,基于zookeeper协调的分布式日志系统(也可以当做MQ系统)。

主要应用场景是:日志收集系统和消息系统。

kafka角色划分及角色用途。
Kafka 集群包含一个或多个服务器,服务器节点称为broker。

broker存储topic的数据。如果某topic有N个partition,集群有N个broker,那么每个broker存储该topic的一个partition。

如果某topic有N个partition,集群有(N+M)个broker,那么其中有N个broker存储该topic的一个partition,剩下的M个broker不存储该topic的partition数据。

如果某topic有N个partition,集群中broker数目少于N个,那么一个broker存储该topic的一个或多个partition。在实际生产环境中,尽量避免这种情况的发生,这种情况容易导致Kafka集群数据不均衡。

如果topic有多个partition,消费数据时就不能保证数据的顺序。在需要严格保证消息的消费顺序的场景下,需要将partition数目设为1。
每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。 同一消费者组消费者不会重复消费同一消息。

image

kafka存储到磁盘中文件内容如图:
image

Kafka中partitions数据一致性:
Kafka中Producer发送消息到Broker,Broker有三种返回方式,分别为noack、leader commit成功就ack、leader和follower同时commit成功才返回ack。第三种方式是数据强一致性。
leader==>负责读写,follower 负责同步,只负责备份。当leader宕机,follower选举出一个leader。保证高可用。

posted @ 2021-12-08 17:04  倔强的老铁  阅读(61)  评论(0编辑  收藏  举报