码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 秋招面试题系列- - -Java工程师(十)


     前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~

    内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈

    目录

    ZooKeeper面试题

    18. zk节点宕机如何处理?

    19. zookeeper负载均衡和 nginx负载均衡区别

    20. Zookeeper有哪几种几种部署模式?

    21.集群最少要几台机器,集群规则是怎样的?

    22.集群支持动态添加机器吗?

    23. Zookeeper对节点的watch监听通知是永久的吗?为什么不是永久的?



     

    ZooKeeper面试题

    18. zk节点宕机如何处理?

    Zookeeper本身也是集群,推荐配置不少于 3个服务器。Zookeeper自身也要保证当一个节点宕机时,其他节点会继续提供服务。

    如果是一个 Follower宕机,还有 2台服务器提供访问,因为 Zookeeper上的数据是有多个副本的,数据并不会丢失;

    如果是一个 Leader宕机,Zookeeper会选举出新的 Leader。

    ZK集群的机制是只要超过半数的节点正常,集群就能正常提供服务。只有在 ZK节点挂得太多,只剩一半或不到一半节点能工作,集群才失效。

    所以

    3个节点的 cluster可以挂掉 1个节点(leader可以得到 2票>1.5)

    2个节点的 cluster就不能挂掉任何 1个节点了(leader可以得到 1票

    19. zookeeper负载均衡和 nginx负载均衡区别

    zk的负载均衡是可以调控,nginx只是能调权重,其他需要可控的都需要自己写插件;但是 nginx的吞吐量比 zk大很多,应该说按业务选择用哪种方式。

    20. Zookeeper有哪几种几种部署模式?

    部署模式:单机模式、伪集群模式、集群模式。

    21.集群最少要几台机器,集群规则是怎样的?

    集群规则为 2N+1台,N>0,即 3台。

    22.集群支持动态添加机器吗?

    其实就是水平扩容了,Zookeeper在这方面不太好。两种方式:

    全部重启:关闭所有 Zookeeper服务,修改配置之后启动。不影响之前客户端的会话。

    逐个重启:在过半存活即可用的原则下,一台机器重启不影响整个集群对外提供服务。这是比较常用的方式。

    3.5版本开始支持动态扩容。

    23. Zookeeper对节点的watch监听通知是永久的吗?为什么不是永久的?

    不是。官方声明:一个 Watch事件是一个一次性的触发器,当被设置了 Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了 Watch的客户端,以便通知它们。

    为什么不是永久的,举个例子,如果服务端变动频繁,而监听的客户端很多情况下,每次变动都要通知到所有的客户端,给网络和服务器造成很大压力。

    一般是客户端执行 getData(“/节点 A”,true),如果节点 A发生了变更或删除,客户端会得到它的 watch事件,但是在之后节点 A又发生了变更,而客户端又没有设置 watch事件,就不再给客户端发送。

    在实际应用中,很多情况下,我们的客户端不需要知道服务端的每一次变动,我只要最新的数据即可。

    本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~

  • 相关阅读:
    vscode 创建 运行c++ 项目
    Oracle Database 19c 新特性之 ANY_VALUE 聚合函数
    GraphGPT: Graph Instruction Tuning for Large Language Models
    CSS - 鼠标移入整行高亮显示,适用于会员套餐各参数对比页面(display: table,div 转表格形式)
    苹果电脑用什么清理软件比较好?
    Handler入门
    spring 框架理论
    循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(4) -- 实现DataGrid数据的导入和导出操作
    Servlet | 深度剖析转发和重定向
    【Oracle】Oracle系列之六--Oracle表分区
  • 原文地址:https://blog.csdn.net/m0_63722685/article/details/126423614
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号