Kafka
前言
一、Kafka的架构
1.kafka基本概念:
- producer 生产者 :负责将消息发送到broker;
- consumer 消费者:从broker中接收消息;
- consumer group消费者组:由多个消费者组成,每个消费者负责消费不同的分区数据。一个分区只能由一个组内消费者消费;消费者组之间互不影响。
- Broker可以看做一个独立的Kafka服务节点或者kafka服务实例;
- topic:是一个逻辑的概念,包含很多partition,同一个topic下不同partition是消息内容是不同的。
- partition:为了实现扩展性一个非常庞大的topic可以分布到多个broker上,一个topic可以分为多个partition,每个partition是一个有序的消息队列。
- Replica:副本,同一个分区的不同副本保存的是相同的消息。为了保证集群中某个节点发生故障时,该节点的消息不丢失,且kafka仍旧可用 ,kafka提供了副本机制 。一个topic的每个分区都有多个副本。一个leader和若干个follower。
- leader :每个分区的多个副本中的主,生产者和消费者只和leader交互。
- follower:每个分区的从副本,负责leader中同步数据,保持和leader数据的同步。leader发生故障,从follower中重新选举新的leader副本对外提供服务。
2.kafka的Replica机制
1.AR (all replicas) 所有的Replica 称为AR;
2.ISR(in sync replicas) 所有与leader副本保持一定程度同步的列表