一、Kafka介绍
Kafka是Apache旗下的一款分布式消息中间件。消息中间件可以将生产者生产出的数据放在一个消息队列中,等待后端消费者来消费处理。除了处理速度比数据库快的优势外,消息队列后还可以避免生产者或者消费者任意一方出现问题时发生数据丢失的情况。所以在业务高峰期的时候,可以将一些数据放在消息队列中,等待系统慢慢消费处理,实现削峰。如果消息队列满了可以考虑对消息队列服务进行扩容。
二、Kafka中的名词
1、broker:kafka集群由多个节点构成,每个节点上的实例就叫做broker
2、producer:生产者,由它来生产数据和决定消息的属性,比如partition和replicas的数量。kafka配置文件中虽然也可以指定,但那个只是默认值
3、consumer:消费者,由它来处理生产出的数据,将消费进度offset保存在Kafka的topic中
4、topic:主题,起到数据分类的作用
5、partition:分区,每个topic可以有多个分区。合理的分区可以提高Kafka集群的负载能力
5、replicas:副本,每个partition可以配置多个replicas作为备份。在这些副本中会有一个leader角色负责数据的读写操作,而其他副本则属于follower,仅和leader保持同步而不提供其他服务。当leader故障时,Kafka根据ISR(将所有follower加入到ISR中,如果有follower迟迟不能和leader保持同步则将其踢出)选取一个follower提升为leader。这些副本之间存在一个同样的高水位(High Watermark),高水位的作用就是让消费者只能看到水位线之