赞
踩
Kafka的也存在Leader和Follow节点,这样就会有一致性问题。
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
kafka对于数据的保证当我们可以容忍数据的丢失和必须保证数据的一致性中ACK机制一共有三种机制,分别是(0,-1,1)。
0:producer不会等待broker返回ack,broker出现故障时会丢失数据。
1:producer在发送消息时会等待数据对副本进行备份备份完成返回ack在副本同步完成后返回ack
当副本出现故障时会出现数据的丢失。
-1:producer发出消息对当partition中的leader和ISR中的follower全部同步完成后才会返回ack当ISR中没有follower时会出现数据丢失,当然这是一种极端的清空。
At-most-once语义:kafka会最多发送一次,不会出现数据的重复但是会出现数据的丢失情况
At-last-once语义: kafka最少发送一次数据,不会出现数据的丢失但是会出现数据的重复
Exactly-Once语义:当At-last-once加上幂等性就可以做到精准一次,幂等性就是不论producer发送多少重复的消息Server端只会保存一次,避免数据的重复。
Leader 维护了一个动态的 in-sync replica set (ISR:同步副本),ISR就可以理解为一个集合,这个集合里就是和Leader保持同步的follower,当follower没有将数据进行同步或者同步时间超时就会将这个follower踢出这个集合,当Leader发生故障就会在ISR中选举新的Leader。
以上就是今天要讲的内容,本文仅仅简单介绍了kafak的一致性的保障。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。