网站屏蔽ip,视觉中国网站建设公司,wordpress导出html,业务推广网站1 Kafka基础面试篇
Kafka的那些设计让它有如此高的性能? 1.partition,producer和consumer端的批处理:提高并行度;2.页缓存:大量使用页缓存,内存操作比磁盘操作快很多,数据写入直接写道页缓存,由操作系统负责刷盘,数据读取也是直接命中页缓存,从内存中直接拿到数据;…1 Kafka基础面试篇
Kafka的那些设计让它有如此高的性能?
1.partition,producer和consumer端的批处理:提高并行度;2.页缓存:大量使用页缓存,内存操作比磁盘操作快很多,数据写入直接写道页缓存,由操作系统负责刷盘,数据读取也是直接命中页缓存,从内存中直接拿到数据;3.零拷贝:如果数据读取命中了页缓存,数据会从页缓存直接发送到网卡进行数据传输,省略了用户态和内核态的切换以及多次的数据拷贝;4.顺序读写:Kafka的数据是顺序追加的,避免了低效率的随机读写;5.优秀的文件存储机制:分区规则设置合理的话,所有消息都可以均匀的分不到不同分区,分区日志还可以分段,相当于举行文件被平均分配为多个相对较小的文件,便于文件维护和清理;索引文件:Kafka含有.index和.timeindex索引,以稀疏索引的方式进行构造,查找时可以根据二分法在索引文件中快速定位到目标数据附近位置,然后再.log文件中顺序读取到目标数据;Kafka的那些设计让它有如此高的性能:分区,顺序写磁盘,0-copy,稀疏索引利用二分查找找到对应数据,批量文件压缩 Kafka的用途有哪些?使用场景如何? 异步处理,发送短信应用解耦流量削锋日志处理消息通讯 Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么 ISR :In-Sync Replicas 副本同步队列AR :Assigned Replicas 所有副本ISR是由leader维护,follower从leader同步数据有一些延迟(包括 延迟时间replica.lag.time.max.ms 和 延迟条数replica.lag.max.message 两个维度,当前最新的版本0.10.x中只支持 replica.lag.time.max.ms 这个维度),任意一个超过阈值都会把follower剔除出ISR,存入OSR(Outof-Sync Replicas)列表,新加入的follower也会先存放在OSR中。 注:AR = ISR + OSR Kafka中的HW、LEO、LSO、LW等分别代表什么? 在Kafka中,HW(High Watermark)表示消费者可见的最高偏移量,LEO(Log End Offset)表示当前分区的最高偏移量,LSO(Log Start Offset)表示当前分区的最低偏移量,LW(Log Write Offset)表示当前分区的写入偏移量。HW是消费者的偏移量上限,消费者只能消费到HW之前的消息。LEO是分区中消息的最高偏移量,LSO是分区中消息的最低偏移量,LW是分区的写入偏移量。 Kafka中是怎么体现消息顺序性的? 只能保证分区内消息顺序有序,无法保证全局有序生产者:通过分区的leader副本负责数据顺序写入,来保证消息顺序性消费者:同一个分区内的消息只能被一个group里的一个消费者消费,保证分区内消费有序为什么做不到全局有序:因为消息会发送到不一样的分区,分区之间发送的顺序是无法保证的如何做到并发且全局有序? topic设置一个分区,发送端和消费端开启多线程生产和消费用kafka采集用户访问轨迹,重写分区器把用户id作为分区键,这样每个用户访问的埋点记录就能按顺序到一个分区,然后有序消费 Kafka中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么? 生产者拦截器和消费者拦截器,拦截器可以用来在消息发送前做一些准备工作生产者需要用序列化器(Serializer)将key和value序列化成字节数组才可以将消息传入Kafka。消费者需要用反序列化器