题库 百科题库 题目列表 测试超长答案题目
单选题

测试超长答案题目

A.

测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案

B.

测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案

C.

测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案测试答案

D.

(1)如何保证宕机的时候数据不丢失?

如果要想理解这个acks参数的含义,首先就得搞明白kafka的高可用架构原理。

比如下面的图里就是表明了对于每一个Topic,我们都可以设置他包含几个Partition,每个Partition负责存储这个Topic一部分的数据。

然后Kafka的Broker集群中,每台机器上都存储了一些Partition,也就存放了Topic的一部分数据,这样就实现了Topic的数据分布式存储在一个Broker集群上。

但是有一个问题,万一 一个Kafka Broker宕机了,此时上面存储的数据不就丢失了吗?

没错,这就是一个比较大的问题了,分布式系统的数据丢失问题,是他首先必须要解决的,一旦说任何一台机器宕机,此时就会导致数据的丢失。

(2)多副本冗余的高可用机制

所以如果大家去分析任何一个分布式系统的原理,比如说zookeeper、kafka、redis cluster、elasticsearch、hdfs,等等,其实他都有自己内部的一套多副本冗余的机制,多副本冗余几乎是现在任何一个优秀的分布式系统都一般要具备的功能。

在kafka集群中,每个Partition都有多个副本,其中一个副本叫做leader,其他的副本叫做follower,如下图。

如上图所示,假设一个Topic拆分为了3个Partition,分别是Partition0,Partiton1,Partition2,此时每个Partition都有2个副本。

比如Partition0有一个副本是Leader,另外一个副本是Follower,Leader和Follower两个副本是分布在不同机器上的。

这样的多副本冗余机制,可以保证任何一台机器挂掉,都不会导致数据彻底丢失,因为起码还是有副本在别的机器上的。

(3)多副本之间数据如何同步?

接着我们就来看看多个副本之间数据是如何同步的?其实任何一个Partition,只有Leader是对外提供读写服务的

也就是说,如果有一个客户端往一个Partition写入数据,此时一般就是写入这个Partition的Leader副本。

然后Leader副本接收到数据之后,Follower副本会不停的给他发送请求尝试去拉取最新的数据,拉取到自己本地后,写入磁盘中。如下图所示:

 
(4)ISR到底指的是什么东西?

既然大家已经知道了Partiton的多副本同步数据的机制了,那么就可以来看看ISR是什么了。

ISR全称是“In-Sync Replicas”,也就是保持同步的副本,他的含义就是,跟Leader始终保持同步的Follower有哪些。

大家可以想一下 ,如果说某个Follower所在的Broker因为JVM FullGC之类的问题,导致自己卡顿了,无法及时从Leader拉取同步数据,那么是不是会导致Follower的数据比Leader要落后很多?

所以这个时候,就意味着Follower已经跟Leader不再处于同步的关系了。但是只要Follower一直及时从Leader同步数据,就可以保证他们是处于同步的关系的。

所以每个Partition都有一个ISR,这个ISR里一定会有Leader自己,因为Leader肯定数据是最新的,然后就是那些跟Leader保持同步的Fo

题目信息
Java工程师
15%
正确率
3
评论
3595
点击
QQ
微信
公众号
扫一扫