Java程序员面试-场景篇

news2024/9/22 19:22:20

前言

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

注册中心

题目: 有三台机器,分别部署了微服务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,设置网络白名单,当然以上是防君子难防小人,要想安全还要采用非对称方式进行签名,保证通讯的安全性。

题目: 我司现有一个手机充值业务,业务模式如下: 商户预充值到我司电子账户,我司提供手机充值接口,比如入参商户号、手机号、充值金额、签名,出参: 是否成功。收到充值请求后,处理流程如下:

  1. 检查商户是否在黑明单
  2. 检查商户的账户状态是否冻结
  3. 检查商户的电子账户余额是否充足
  4. 加锁
  5. 电子账户余额扣减
  6. 调用第三方接口对手机号充值
  7. 释放锁

大部分商户都运转正常,但其中一个大商户,部署终端比较多,反馈经常卡顿,请分析可能是什么原因导致,如何进行优化提升性能?

解析: 这个一个比较开放的题目,旨在考察面试者的实际应用经验,面对一个具体业务场景,能否找到关键问题,并给出一些行之有效的解决方案

答案

  1. 产生的原因
    大概率是加锁导致的, 大部分商户没有产生问题是因为他们的并发量小,锁冲突的概率小,而大商户的业务量大,这个锁就成了业务瓶颈。
  2. 优化可以考虑以下几个方面
    大商户都是我们的重要客户,一般都具有良好的资质,既然有黑名单,是不是可以有白名单或大客户名单,对白名单客户,1-3的检查项进行简化。
    大商户的电子账户可以设计成多个,可以把资金分散到多个子账户上,这个余额扣减就可以分散了,等同小商户。
    加锁的范围有点大了,还包含调用第三方充值接口,其实没有必要,这部分可以放到锁的外部。

结束语

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Halcon 模板匹配基于轮廓(形状)

文章目录 halcon 案例 基于缩放比halcon 案例 测单个剃须刀片Halcon 案例创建匹配模板Halcon 通过图像处理创建模型 ROI模型Halcon 亚像素识别Halcon 识别不等比例的图像Halcon 匹配包装袋案例Halcon 创建模板进行匹配Halcon 案例模板匹配与测量Halcon 多模板与多图像的匹配 ha…

CMake入门教程【核心篇】导入外部库Opencv

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 环境准备示例:在Windows上配置OpenCV路径示例:在Linux上配置OpenCV路径环境准备 首先确保你的系统中安装了CMake。可以通过以下命令安装: Windows: 下载并…

猴子选大王

思路:首先举个例子:当N 5 时 1 2 3 4 5 3 3 3 3 输出4 请观看代码 …

光纤知识总结

1光纤概念: 光导纤维(英语:Optical fiber),简称光纤,是一种由玻璃或塑料制成的纤维,利用光在这些纤维中以全内反射原理传输的光传导工具。 微细的光纤封装在塑料护套中,使得它能够…

定时器中断控制的独立式键盘扫描实验

#include<reg51.h> //包含51单片机寄存器定义的头文件 sbit S1P1^4; //将S1位定义为P1.4引脚 sbit S2P1^5; //将S2位定义为P1.5引脚 sbit S3P1^6; //将S3位定义为P1.6引脚 sbit S4P1^7; //将S4位定义为P1.7引脚 unsigned char keyval; /…

在黑马程序员大学的2023年终总结

起笔 时间真快&#xff0c;转眼又是年末。是时候给2023做个年终总结了&#xff0c;为这一年的学习、生活以及成长画上一个圆满的句号。 这一年相比去年经历了很多事情&#xff0c;接下来我会一一说起 全文大概4000字&#xff0c;可能会占用你15分钟左右的时间 经历 先来给大…

Python学习之路-Hello Python

Python学习之路-Hello Python Python解释器 简介 前面说到Python是解释型语言&#xff0c;Python解释器的作用就是用于"翻译"Python程序。Python规定了一个Python语法规则&#xff0c;根据该规则可编写Python解释器。 常见的Python解释器 CPython&#xff1a;官方…

哈希-力扣01两数之和

题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺…

云仓酒庄的品牌雷盛红酒LEESON分享什么是“小农香槟”?

云仓酒庄的品牌雷盛红酒LEESON分享说起香槟&#xff0c;第一时间会想到法国&#xff0c;因为只有法国的起泡酒才能叫“香槟”。那么&#xff0c;什么又是“小农香槟”呢&#xff1f; 小农香槟是相对大厂香槟而命名的&#xff0c;是指葡萄果农自产、自酿、自销的香槟&#xff0…

TS中的类

目录 ES6的类 类的概念 类的构成 类的创建 声明 构造函数 定义内容 创建实例 TS中的类 类声明 构造函数 属性和方法 实例化类 继承 访问修饰符 public private protected 成员访问修饰符的使用原则 访问器 只读成员与静态成员 readonly static 修饰符总…

MySQL之导入导出远程备份

目录 一. navicat导入导出 二. mysqldump命令导入导出 导入 导出 三. load data infile命令导入导出 导入 导出 四. 远程备份 导入 导出 思维导图 一. navicat导入导出 导入&#xff1a;右键➡运行SQL文件 导出&#xff1a;选中要导出的表➡右键➡转储SQL文件➡数据和结…

【PB续命07】JDBC连接达梦数据库

JDBC(Java DataBase Connectivity) 称为Java数据库连接&#xff0c;它是一种用于数据库访问的应用程序API&#xff0c;由一组用Java语言编写的类和接口组成&#xff0c;有了JDBC就可以用同一的语法对多种关系数据库进行访问&#xff0c;而不用担心其数据库操作语言的差异。 有了…

基于Python的货币识别技术实现

目录 介绍本文的目的和意义货币识别技术的应用场景 货币识别的基本原理图像处理技术在货币识别中的应用特征提取方法&#xff1a;SIFT、HOG等支持向量机&#xff08;SVM&#xff09;分类器的使用 实现过程数据集的收集和预处理特征提取和训练分类器 参考文献 介绍 本文的目的和…

Spring事务控制见解6

7.Spring事务控制 7.1.事务介绍 7.1.1.什么是事务&#xff1f; 当你需要一次执行多条SQL语句时&#xff0c;可以使用事务。通俗一点说&#xff0c;如果这几条SQL语句全部执行成功&#xff0c;则才对数据库进行一次更新&#xff0c;如果有一条SQL语句执行失败&#xff0c;则这…

软件测试|Chrome 115之后的版本,如何更新driver?

问题描述 前两天在运行一个web自动化测试脚本时&#xff0c;报了如下的错误&#xff0c;This version of ChromeDriver only supports Chrome version 113 Current browser version is 115.0.5790.110 with binary&#xff0c;如下图所示&#xff1a; 该报错提示我&#xff0c…

灵魂三连问:是5G卡吗?支持5G吗?是5G套餐吗

关于5G的问题&#xff0c;小伙伴们的疑问是不是很多&#xff0c;它和4G到底有什么区别呢&#xff1f;什么是5G卡&#xff1f;什么是5G套餐&#xff1f;支持5G吗&#xff1f;什么是5G基站&#xff1f;我想大家现在一定是晕的&#xff0c;下面小编来给大家解惑&#xff01; 1&…

C语言入门教程,C语言学习教程(第二部分:C语言初探)一

第二部分&#xff1a;C语言初探 本章主要讲解C语言编程环境的搭建&#xff0c;让大家能够编写并运行C语言代码&#xff0c;其中&#xff0c;编译器是重点讲解内容。 本章还对一段简单的C语言代码进行了分析&#xff0c;让大家明白了C语言程序的基本结构。 一、第一个C语言程序…

【教学类-45-03】X-Y之间的“三连加减“题(a+b-c=)

作品展示&#xff1a; 背景需求&#xff1a; 【教学类-45-02】X-Y之间的“三连减“题(a-b-c)-CSDN博客文章浏览阅读465次&#xff0c;点赞15次&#xff0c;收藏7次。【教学类-45-02】X-Y之间的"三连减"题(a-b-c)https://blog.csdn.net/reasonsummer/article/details…

前端实现搜索功能

最近遇到一个需求,用户在输入框输入关键字之后,点击搜索按钮后进行搜索,如下图,选中的数据在下面,上面展现的是搜索后的数据,现在选中了2条数据: 当用户输入KET后点击搜索,搜出的结果有16条,勾选全选选中后,将选中的16条的数据加到之前已选的2条数据里,于是此时已选…

JavaScript版数据结构与算法(一)栈、队列、链表、集合、树

一、前言 为什么要学习数据结构与算法&#xff1f;最重要的就是面试要考算法&#xff0c;另外就是如果在实际工作当中&#xff0c;能够使用算法优化代码&#xff0c;会提升代码质量和运行效率&#xff0c;作为一名前端人员可能在实际中用的并不是特别多。数据结构与算法是分不…