Java程序员面试-场景篇

前言

裁员增效潮滚滚而来,特总结一些实际场景方案的面试题,希望对大家找工作有一些帮助。

注册中心

题目: 有三台机器,分别部署了微服务A、微服务B、注册中心,其中A和B都有服务接口提供并正常注册到了注册中心,A和B之间有依赖调用,当前整个环境在正常运行,如果现在注册中心这台机器断电了,整个环境还是否可用,有哪些影响?

解析: 此题考察对注册中心原理的理解,这里不管注册中心是zookeep还是eureaka都是一样的。部分面试者会反问:注册中心一般会部署多台,不会都死掉的,面试官会强调场景中只有一台,并且部署多台也无法保证不会都出故障,只是概率问题。
首先要想清楚有没有影响,

  • 微服务中的消费者是如何知道生产者的IP端口的呢?
    是通过向注册中心问询得知;
  • 是什么阶段问的?
    服务启动时
  • 生产者增加或减少怎么知道?
    zk是推给消费者更新生产者列表
    eureaka是消费者定时查询生产者列表并更新

答案: 整个环境可用,但如果A或B需要重启,就无法正常运行了。

消息中间件

题目: 有三台机器,分别部署了微服务A、微服务B、消息中间件(比如RockeMQ),现在定义了一条点对点的消息,其中A是生产者、B是消费者,已知A成功生产一条消息,问B有没有可能收到两条消息?

解析: 消息中间件有什么作用,什么场景适合使用这些我向大家在各种面试宝典中已背的滚瓜烂熟,初级程序员还可以蒙混过关,但高级程序员是要独立负责一个子系统的定位,要有一定的技术把控力,你可以不懂具体实现,但你要知道这里有坑。

答案: 有可能,您问为什么有可能,请官方文档说明:
在这里插入图片描述
什么叫至少,什么是大多数就不用我多解释了吧。有同学会问那其他的消息中间件呢,其实都是一样的产品规格,这是通用规格,并非RocketMQ一家缩水。

解决方案

题目: 公司有个一个官网,是N年前开发的,伴随者客户访问量的增长,运行缓慢,请给出一个优化方案?

解析: 这个案例在公司中发生的概率很高,是考你解决问题的整体思路是否有,或者说有没有方法论,回答的不同能反映出你不同的经历,知识结构等等。

答案: 一个老法师的回答:

  1. 看病先诊脉,公司是否有链路追踪等监控系统,如果没有建议接入sky-walking看最大的病因在哪里。
  2. 根据我几年积累的经验有以下几种优化的策略:
    动静分离: 动态服务器(比如Tomcat\Jboss)处理静态资源的效率很低,可以分离使用Nginx部署静态资源。
    分级缓存: 本地缓存+Redis缓存 当然通常用Redis就够了
    消峰解耦: 结合具体业务可以利用消息中间件进行消峰解耦。

题目: 现在我们公司要提供一个服务接口给第三方调用,如何保障通信安全?

解析: 这个问题是旨在考察面试者的知识储备,是否在工作中对加解密问题进行过自己的理解和思考或是学习。

答案:首先通信协议约定为https,设置网络白名单,当然以上是防君子难防小人,要想安全还要采用非对称方式进行签名,保证通讯的安全性。

结束语

2023年刚刚过去,伴随着经济周期的变化,国际关系的动荡,越来越多的公司认清了现实,保留子弹,活下去才是硬道理。朋友圈子不断传来公司裁员的消息,但却少有招人的公司,市场供需严重失调,本人也经历年终奖推迟、下调,虽万般腹诽,面对市场大势力却是无能为力,唯天行健,君子当自强不息,与君共勉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/302501.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC概述

MVC介绍 MVC是一种设计模式,将软件按照模型、视图、控制器来划分: M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean:专门存储业务数据的&…

Docker Compose--部署SpringBoot项目--实战

原文网址:Docker Compose--部署SpringBoot项目--实战-CSDN博客 简介 本文用实战介绍Docker Compose部署SpringBoot项目。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题&#xff0c…

Java方法用法及解析

在 Java 中,方法(Method)是用于执行特定任务的代码块。它是一个函数,用于封装一段可重复执行的代码,并可以被其他代码调用。方法定义了一系列操作的步骤,并提供了一种结构化和可复用的方式来组织和执行这些…

MathType7.6安装教程

1.软件介绍 MathType是一款可以帮助用户快速完成数学公式编辑的应用软件,这款软件适合在进行教育教学、科研机构、论文写作的时候使用。我们可以直接通过这款软件来获取到大量数学上使用到的函数、数学符号等内容,然后使用这些内容来完成公式编辑。 不管…

【mars3d】new mars3d.layer.GeoJsonLayer(实现环状面应该怎么传data

问题:【mars3d】new mars3d.layer.GeoJsonLayer(实现环状面应该怎么传data 解决方案: 1.在示例中修改showDraw()方法的data数据,实现以下环状面效果 2.示例链接: 功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 export f…

深入理解Java源码:提升技术功底,深度掌握技术框架,快速定位线上问题

为什么要看源码: 1、提升技术功底: 学习源码里的优秀设计思想,比如一些疑难问题的解决思路,还有一些优秀的设计模式,整体提升自己的技术功底 2、深度掌握技术框架: 源码看多了,对于一个新技术…

真的干不过,00后整顿职场已经给我卷麻了,想离职了...

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&#x…

J2EE 实验一

实验一 基于Struts2的登录系统实现 一、目的与任务 目的:熟悉在集成开发平台上配置Struts2框架,学习Struts2编程 任务:在集成开发平台上创建Struts2项目,实现登录系统 二、内容、要求与安排方式 1、实验内容与要求&#xff1…

C盘突然满了,怎么清理

方法一 winr 输入%tem%按回车键,出现的这些都是缓存文件可以按删除键删掉 方法二 winr 输入cleanmgr按回车键,选择清理的盘符,这里选择C盘,点击确定删除 方法三 在系统设置里手动删除 找到电脑里面的设置选项,找…

第九节HarmonyOS 常用基础组件12-TextTimer

1、描述 通过文本显示计时信息并控制其计时器状态的组件。 2、接口 TextTimer(options?: {isCountDown?: boolean, count?: number, controller?: TextTimerController}) 3、参数 参数名称 参数类型 必填 描述 isCountDown boolean 否 是否倒计时。默认值&#…

LeetCode刷题--- 珠宝的最高价值

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述动…

如何启用Windows电脑的内置Administrator账户

前言 不知道从什么时候开始,新电脑或者新系统开机之后都会出现一个界面让你创建一个账户,但这个账户有可能是本地账户(Windows10)还有强制你登录微软账户的(Windows11)。 好像曾经熟悉的电脑Administrator…

750ml离心瓶进口国产离心机通用750ml离心杯高低速离心机瓶

750ml低速离心瓶系列: 产品货号:ZY1136222 材质:PPCO 容量(ml):750 尺寸(O.DxH,mm):98.5x147 最大离心力(xg):6000 产品货号&…

Vue2:通过props给组件传数据

一、业务场景 我们在使用Vue组件时,常常会复用Vue组件,那么,问题来了,复用的时候,业务数据不相同,怎么办了? 这里我们就需要学习新的属性:props来实现这个功能。 这样,组…

代码随想录day23 二叉岁终章

669. 修剪二叉搜索树 题目 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。 思考 这题有个…

ComfyUI报错AttributeError: module ‘cv2.gapi.wip.draw‘ has no attribute ‘Text‘

ComfyUI在安装comfyui-reactor-node插件,然后启动之后突然报错: AttributeError: module cv2.gapi.wip.draw has no attribute Text 这是怎么回事呢? 于是四处搜寻答案。 总之就是opencv-python版本的问题导致的。 我将有可能解决办法的方法进行了总结。 下面列出所有解…

数字人源码部署新机遇,预测2024年AI应用将出现爆发式增长

近日,钉钉联合IDC发布《2024 AIGC应用层十大趋势白皮书》,其中,IDC预测到,2024年AI应用将出现爆发式增长,到2024年全球将涌现出超过5亿个新应用,到2026年,2/3的云应用将使用AI。 看来&#xff…

selenium如何使用隧道代理请求目标地址?

使用Selenium结合隧道代理IP可以通过以下步骤实现: 获取代理IP: 首先,你需要获得一个可用的隧道代理IP。你可以使用代理服务提供商(巨量IP平台提供免费隧道代理测试) 安装Selenium: 如果你还没有安装Selen…

基于CNC车间的复合机器人柔性上下料系统改造方案

在制造业中,CNC车间一直面临着提高生产效率、降低人工成本和提升柔性生产能力的挑战。针对这些行业痛点,富唯智能为您提供一种创新的解决方案:复合机器人柔性上下料系统。本方案结合了先进的机器人技术和自动化系统,旨在提高生产效…

Qt 6之五:创建菜单

Qt 6之五:创建菜单 Qt是一种跨平台的C应用程序开发框架,它提供了一套丰富的工具和库,可以帮助开发者快速构建跨平台的应用程序,用于开发图形用户界面(GUI)和非GUI应用程序。 Qt 6之一:简介、安…