[ Java面试题 ]Java 开发岗面试知识点解析 (11)

消费者组(Consumer Group): 每个 consumer 都属于一个 consumer group,每条消息只能被 consumer group 中的一个 Consumer 消费,但可以被多个 consumer group 消费。

Broker:

一个单独的 server 就是一个 Broker;

主要工作:接收生产者发过来的消息,分配 offset,并且保存到磁盘中;

Cluster&Controller:

多个 Broker 可以组成一个 Cluster,每个集群选举一个 Broker 来作为 Controller,充当指挥中心

Controller 负责管理分区的状态,管理每个分区的副本状态,监听 ZooKeeper 中数据的变化等工作

保留策略和日志压缩:

不管消费者是否已经消费了消息,KafKa 都会一直保存这些消息(持久化到磁盘);

通过保留策略,定时删除陈旧的消息;

日志压缩,只保留最新的 Key-Value 对。

关于副本机制:(加分点)

ISR 集合 :表示当前 “可用” 且消息量与 Leader 相差不多的副本集合。满足条件如下:

副本所在节点必须维持着与 ZooKeeper 的连接;

副本最后一条信息的 offset 与 Leader 副本的最后一条消息的 offset 之间的差值不能超过指定的阈值。

深入浅出理解基于 Kafka 和 ZooKeeper 的分布式消息队列

HW&LEO:

HW 标记了一个特殊的 offset,当消费者处理消息的时候,只能拉取到 HW 之前的消息;

HW 也是由 Leader 副本管理的;

LEO(Log End Offset)是所有副本都会有的一个 offset 标记。

ISR、HW 和 LEO 的工作配合:

producer 向此分区中推送消息;

Leader 副本将消息追加到 Log 中,并且递增其 LEO;

Follower 副本从 Leader 副本中拉取消息进行同步;

Follower 副本将消息更新到本地 Log 中,并且递增其 LEO;

当 ISR 集合中的所有副本都完成了对 offset 的消息同步,Leader 副本会递增其 HW

KafKa 的容灾机制:通过分区的副本 Leader 副本和 Follower 副本来提高容灾能力。

小结:请小伙伴根据自己的简历自行准备学习大数据相关知识点。

[ Java面试题 ]Java 开发岗面试知识点解析

Linux 常见命令

作者对这一方面不是很精通,知识点来源于网络总结以及面试官的提问,仅供小伙伴参考。

01. grep、sed 以及 awk 命令

解析:awk 命令如果可以掌握,是面试中的一个  加分点。

02. 文件和目录:

pwd 显示当前目录

ls 显示当前目录下的文件和目录:

ls -F 可以区分文件和目录;

ls -a 可以把隐藏文件和普通文件一起显示出来;

ls -R 可以递归显示子目录中的文件和目录;

ls -l 显示长列表;

ls -l test 过滤器,查看某个特定文件信息。可以只查看 test 文件的信息。

03. 处理文件方面的命令有:touch、cp、 In、mv、rm、          

04. 处理目录方面的命令:mkdir

05. 查看文件内容:file、cat、more、less、tail、head

06. 监测程序命令:ps、top

eg. 找出进程名中包括 java 的所有进程:ps -ef | grep java

top 命令 实时监测进程

top 命令输出的第一部分:显示系统的概括。

第一行显示了当前时间、系统的运行时间、登录的用户数和系统的平均负载(平均负载有 3 个值:最近 1min 5min 15min);

第二行显示了进程的概要信息,有多少进程处于运行、休眠、停止或者僵化状态;

第三行是 CPU 的概要信息;

第四行是系统内存的状态。

07. ps 和 top 命令的区别:

ps 看到的是命令执行瞬间的进程信息 , 而 top 可以持续的监视;

ps 只是查看进程 , 而 top 还可以监视系统性能 , 如平均负载 ,cpu 和内存的消耗;

另外 top 还可以操作进程 , 如改变优先级 (命令 r) 和关闭进程 (命令 k);

ps 主要是查看进程的,关注点在于查看需要查看的进程;

top 主要看 cpu, 内存使用情况,及占用资源最多的进程由高到低排序,关注点在于资源占用情况。

08. 压缩数据

tar -xvf 文件名;

tar -zxvf 文件名;

tar -cvzf 文件名。

09. 结束进程:kill PID 或者 kill all

结束语

至此,从十个不同的方面阐述了 Java 开发面试岗位中所涉及到的重要知识点。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxfyf.html