Kafka的也存在Leader和Follow节点,这样就会有一致性问题。

文章目录

一、kafka是什么?

二、kafka生产者和消费者如何保证消息不丢失和重复

1.kafka的ack机制

2.kafka的三种消费策略

3.什么是ISR

总结

一、kafka是什么?

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

二、kafka生产者和消费者如何保证消息不丢失和重复

1.kafka的ack机制

kafka对于数据的保证当我们可以容忍数据的丢失和必须保证数据的一致性中ACK机制一共有三种机制,分别是(0,-1,1)。

0:producer不会等待broker返回ack,broker出现故障时会丢失数据。

1:producer在发送消息时会等待数据对副本进行备份备份完成返回ack在副本同步完成后返回ack

当副本出现故障时会出现数据的丢失。

-1:producer发出消息对当partition中的leader和ISR中的follower全部同步完成后才会返回ack当ISR中没有follower时会出现数据丢失,当然这是一种极端的清空。

2.kafka的三种消费策略

At-most-once语义:kafka会最多发送一次,不会出现数据的重复但是会出现数据的丢失情况

At-last-once语义: kafka最少发送一次数据,不会出现数据的丢失但是会出现数据的重复

Exactly-Once语义:当At-last-once加上幂等性就可以做到精准一次,幂等性就是不论producer发送多少重复的消息Server端只会保存一次,避免数据的重复。

3.什么是ISR

Leader 维护了一个动态的 in-sync replica set (ISR:同步副本),ISR就可以理解为一个集合,这个集合里就是和Leader保持同步的follower,当follower没有将数据进行同步或者同步时间超时就会将这个follower踢出这个集合,当Leader发生故障就会在ISR中选举新的Leader。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了kafak的一致性的保障。

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: