kafka学习一

kafka是分布式基于发布订阅模式的消息队列。

消息队列有两种模式:1.点对点模式。2.发布订阅模式,其中消费模式又分为两种。第一,消息队列主动推送数据给消费者,但是消费者消费能力不同,这种情况容易造成消费者崩溃或者资源浪费。第二,消费者主动向消息队列拉取数据,但是这种情况需要消费者不断查看消息队列中是否有新数据。kafka使用的是发布订阅中的第二种。

kafka学习一

kafka基础架构:生产者生产消息,kafka集群管理消息,消费者消费消息,zookeeper注册消息。

kafka cluster集群,broker服务器,topic主题,partition分区。同一个topic的不同partition可以放在不同broker里面,提高了并发能力。针对分区的leader,而follower提供备份的功能(副本,数据的冗余)。但是一般生产者消费者都找leader,当leader丢失再找follower。consumer group中的消费者,某一个分区只能被同一个cg里面的某一个消费者消费,可以被其他cg的消费者消费。消费者组提高消费能力。同一个集群用同样的zookeeper。

consumer group(CG):消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。

replica:副本,为保证集群中某个节点发生故障时,该节点上的partition数据不丢失 ,且kafka任然能够继续工作,kafka提供了副本机制,一个topic的每个分区都 由若干个副本,一个leader和若干个follower。

offset记录消费位置。