赞
踩
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
总计 1000+ 道面试题, 内容 又全含金量又高
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Kafka集群包含多个broker节点和一个ZooKeeper 集群。如上图集群结构:4个broker节点和3个ZooKeeper节点。Kafka 集群的controller在被选中后,会从 ZooKeeper 中加载它的状态。选举controller的过程是由zookeeper自动完成的。
在新的架构中
三个 controller 节点替代三个ZooKeeper节点。 controller节点和 broker 节点运行在不同的进程中。这些controller 节点中会选择一个成为Leader。新的架构中,controller不会向 broker 推送更新,而是 broker 从 controller Leader 拉取元数据的更新信息。
尽管 controller 进程在逻辑上与 broker 进程是分离的,但它们不需要在物理上分离。即在某些情况下,部分或所有 controller 进程和 broker 进程是可以是同一个进程,即一个broker节点即是broker也是controller。
在KRaft模式下,通过指定某些服务器作为控制器,在Server.properties的Process.roles 参数里面配置。
不像基于ZooKeeper的模式,(zk去做的事情,我们手动配置不了)任何服务器都可以成为控制器。这带来了一个非常优秀的好处,即如果我们认为 controller 节点的负载会比其他只当做broker节点高,那么可以为 controller 节点使用高配的机器。这就解决了在1.0, 2.0架构中, controller 节点会比其他节点负载高,却无法控制哪些节点能成为 controller 节点的问题。
被(手动配置)选中的 controller 节点将参与元数据集群的选举。对于当前的 controller 节点,每个控制器服务器要么是Active的,要么是Standby的。
用户通常会选择3或5台(奇数台)服务器成为 controller 节点,3和5的个数问题和Raft的原理一样,少数服从多数。
就像使用ZooKeeper一样,为了保持可用性,你必须让大部分 controller 保持active状态。如果你有3个controller,你可以容忍1个故障;在5个控制器中,您可以容忍2个故障。
在KRaft模式下,每个Kafka服务器都有一个新的配置项,叫做process.roles, 这个参数可以有以下值:
- 如果process.roles = broker, 服务器在KRaft模式中充当 broker。
- 如果process.roles = controller, 服务器在KRaft模式下充当 controller。
- 如果process.roles = broker,controller,服务器在KRaft模式中同时充当 broker 和controller。
注意:如果process.roles 没有设置。那么集群就假定是运行在ZooKeeper模式下。
对于简单的场景,组合节点更容易运行和部署,可以避免多进程运行时,JVM带来的相关的固定内存开销。但controller将较少地与系统的其余部分隔离。例如,如果代理上的活动导致内存不足,controller也会受到例如OOM的影响。
系统中的所有节点都必须设置 controller.quorum.voters 配置。用于配置所有想成为controller的节点。
如果你有10个broker和 3个controller1,分别命名为controller1、controller2、controller3,你可能在 controller1上有以下配置:
process.roles=controller
node.id=1
listeners=CONTROLLER://controller1.example.com:9093
controller.quorum.voters=1@controller1.com:9093,2@controller2.com:9093,3@controller3.com:9093
controller.quorum.voters配置格式说明:nodeid1@controller-node1:9093,nodeid2@controller-node2:9093,nodeid3@controller-node3:9093
如果你只有三个节点,每个节点都是controller,broker角色,那么每个节点都这样配置
process.roles=broker,controller
listeners=CONTROLLER://controller1.example.com:9093
controller.quorum.voters=1@controller1.com:9093,2@controller2.com:9093,3@controller3.com:9093
KRaft: Apache Kafka Without ZooKeeper
进行三个节点的安装,如下规划:
节点 | node.id | 角色 |
---|---|---|
node1 | 1 | controller,broker |
node2 | 2 | controller,broker |
node3 | 3 | controller,broker |
kafka下载: https://kafka.apache.org/downloads
解压
tar -zxvf kafka_2.13-3.0.0.tgz
在node1中配置:server.properties
在{KAFKA_HOME}/config/kraft/server.properties
############################# Server Basics ############################# java.home=/opt/jvm/java # The role of this server. Setting this puts us in KRaft mode process.roles=broker,controller # The node id associated with this instance's roles node.id={{broker_id}} # The connect string for the controller quorum # 每个节点配置都一样:格式:{{broker_id_1}}@{{hostname1}}:9093,{{broker_id_2}}@{{hostname2}}:9093,{{broker_id_3}}@{{hostname3}}:9093 controller.quorum.voters={{voters}} ############################# Log Basics ############################# # A comma separated list of directories under which to store log files # 数据存储目录 log.dirs=/opt/kafka3.5.0/logs
配置node2、node3,其余两个节点配置除了node.id
不同,其他配置都相同。node.id
配置如上节点规划。
生成集群 ID
整个集群唯一的ID标志
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!** 式化 **生成集群 ID** 整个集群唯一的ID标志
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。