2023-9-25 美团售后服务系统后端一面【2024秋招】
1 实习
1.1 讲讲你做的一个需求,为什么这么做之类的
答:
1.2 什么是接线
1.3 什么的初始接线,和权威接线
答:初始接线是现状,权威是规划中的
1.4 为什么要做比较呢?
答:运维人员需要查看差异,看一下建设的差异,如果走偏了,可以纠正
1.5 一个机房有多少个端口呢(首次提问)
答:这个我不知道的,一个机器大概10w台服务器,双端互联(出端和入端),大概20w
1.6 机器的内存多大
答:堆内存是8GB,机器内存是12GB
1.7 你这19个机房,算完大概用了多长时间呢(首次提问)
答:大概读取一个机房的接线数据的时间是10s,权威和基础都要读,相当于读取2次,处理时间是1min,19个机房差不多19*1.2=22.8min
-
服务器的接线和端口数量:
- 假设每台服务器都有一个主要的网络接口(例如,一个以太网接口),那么总共会有10万根接线。
- 如果每台服务器都有一个网络端口,那么总共会有10万个端口。
- 但这只是一个简化的估计。实际上,一些服务器可能有多个网络接口,或者在机房中可能使用了交换机和路由器,这会影响实际的接线和端口数量。
-
从数据库拉取10w记录的通信时间:
- 这个问题的答案取决于多个因素,包括每条记录的大小、网络带宽、数据库的性能和响应时间等。
- 假设每条记录大小为1KB,那么10万条记录总大小为约100MB。
- 如果网络带宽为1Gbps(约125MB/s),那么理论上需要不到1秒的时间来传输这100MB的数据。但实际的时间可能会更长,因为还需要考虑到数据库查询的时间、网络延迟等因素。
-
将10w条记录的列表进行遍历,依次放入到一个map中的时间:
- 这个问题的答案取决于处理数据的程序的效率、运行的硬件性能等因素。
- 在一台性能良好的服务器上,将10万条记录放入一个map中通常只需要几秒钟或更短的时间。但这只是一个大致的估计,实际的时间可能会根据具体的情况有所不同。
以上的答案都是基于一些假设和估计的,实际的情况可能会有所不同。如果需要更准确的答案,可能需要提供更多的具体信息。
1.8 基础curd启动器是个什么需求
答:
1.9 你的curd启动器是支持单表还是联表查询呢
答:单表和联表都支持,但是联表还是需要我们在dao层写sql
2.0 你的联表是怎么做的呢(重要)
答:
3 rpc
3.1 你做出的有什么亮点,比其他rpc更优秀吗
答:
3.2 哪些部分是你自己手写的
3.3 你做的这个事情,遇到了什么困难嘛
答:自定义协议上,没搞懂,为什么要这个,不是已经有了通用的http协议嘛
3.4 什么情况下用什么协议呢
答:
选择协议主要取决于应用的需求和场景。例如,如果是内部服务之间的通信,追求高性能和低延迟,可以选择更为轻量级的自定义协议。而如果是与外部系统或第三方服务进行通信,可能需要选择更为通用和标准的协议,如HTTP或gRPC。
查找域名用DNS,远程登陆用telnet,文件上传下载用ftp,邮件传输用smtp
4 mysql
4.1 为什么要遵循最左匹配原则,底层是怎么实现的呢
答:
MySQL中的“最左匹配原则”主要与复合索引(composite index)的使用有关。当我们在MySQL中创建一个复合索引,例如INDEX(a, b, c),最左匹配原则意味着在查询时,必须从左到右地使用索引的列。例如,可以使用索引查询a或a和b,但不能仅使用b或c。
为什么MySQL要遵循最左匹配原则?
-
索引结构:MySQL主要使用B-Tree(特别是InnoDB存储引擎使用的是B+Tree)来实现其索引。在这种结构中,数据是按照索引列的顺序存储的。因此,如果不从最左边的列开始查询,MySQL将无法有效地使用索引。
-
效率:遵循最左匹配原则可以确保MySQL在查询时最大限度地利用索引,从而提高查询效率。
底层是怎么实现的?
-
B-Tree索引:在B-Tree索引中,数据是按照键值的顺序存储的。对于复合索引
INDEX(a, b, c),数据首先按照a的值排序,然后在a的每个值内部,数据按照b的值排序,以此类推。因此,如果查询不从a开始,MySQL将无法直接跳到索引的相关部分,导致查询效率降低。 -
索引查找:当MySQL查询复合索引时,它会从最左边的列开始,在B-Tree中查找匹配的值。如果查询条件中包含了索引的更多列,MySQL会继续在当前的索引部分中查找,直到找到所有匹配的记录或到达索引的末尾。
总之,最左匹配原则是基于MySQL索引的B-Tree结构和查找算法的。遵循这一原则可以确保MySQL在查询时最大限度地利用索引,从而提高查询效率。
5 反问
5.1 你们主要是哪个部门的
答:我们是美团的服务体验部,我们做的主要是美团的所有业务的售后服务系统
6 算法:给a开b次方,要求精确到小数点后5位(参考69. x 的平方根 )
import java.util.*;
public class Main {public static void main(String[] args) { double res=findRoot(8,2);System.out.println(res);//给a开b次方}// 10: 3*3// 5位static double findRoot(int a, int b){double l=0,r=a;double m=0;while(true){m=(l+r)/2.0;double ch=check(m,b,(double)a);if(ch>0.00001){r=m;}else if(ch<-0.00001){l=m;}else{break;}}return m;}static double check(double m, int b,double a){double res=1;while(b>0){res=res*m;b--;}return res-a;}
}
相关文章:
2023-9-25 美团售后服务系统后端一面【2024秋招】
1 实习 1.1 讲讲你做的一个需求,为什么这么做之类的 答: 1.2 什么是接线 1.3 什么的初始接线,和权威接线 答:初始接线是现状,权威是规划中的 1.4 为什么要做比较呢? 答:运维人员需要查看…...
YOLOv5改进实战 | GSConv + SlimNeck双剑合璧,进一步提升YOLO!
前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…...
Redis之zset在异步队列上的应用
当遇到并发的客户端请求时,为了缓解服务端的处理压力,当请求对响应的处理的实时性要求不高时,可以实现一个异步的请求消息队列。 一种实现策略是使用redis的zset,将消息的到期处理时间作为score,然后用多个线程去轮训…...
day4:Node.js 核心库
day4:Node.js 核心库 文章目录 day4:Node.js 核心库常用工具模块util 模块Moment 模块Lodash 模块web模块文件模块path 模块常用工具模块 Node.js有许多常用的工具,以下是一些常见的: util: 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能…...
PHP非对称与对称双向加密解密的方式
目录 RSA非对称加密解密: 什么是RSA非对称加密解密解析: 解析: 为什么使用: 有什么优点: DEMO: AES、DES、3DES等对称加密解密: 解析: 为什么使用: 有什么优点: DEMO: RSA非对称加密解密: 什么是RSA非对称加密解密解析: 解析: RSA非对称加密…...
C++之struct匿名结构体实例(二百四十四)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
npm publish发布到在线仓库时,提示:Scope not found
当npm publish发布时,控制台提示:Scope not found,具体错误信息如下: npm notice npm ERR! code E404 npm ERR! 404 Not Found - PUT https://registry.npmjs.org/xxx%2fxxx - Scope not found npm ERR! 404 npm ERR! 404 xxx/xx…...
AWS Lambda 操作 RDS 示例
实现目标 创建一个 Lambda 接收调用时传入的数据, 写入 RDS 数据库 Post 表存储文章信息. 表结构如下: idtitlecontentcreate_date1我是标题我是正文内容2023-10-21 15:20:00 AWS 资源准备 RDS 控制台创建 MySQL 实例, 不允许 Public access (后面 Lambda 需要通过 VPC 访问…...
【java爬虫】使用selenium获取某交易所公司半年报数据
引言 上市公司的财报数据一般都会进行公开,我们可以在某交易所的官方网站上查看这些数据,由于数据很多,如果只是手动收集的话可能会比较耗时耗力,我们可以采用爬虫的方法进行数据的获取。 本文就介绍采用selenium框架进行公司财…...
MATLAB - 不能使用PYTHON,缺少matplotlib模块的解决办法
matlab缺少python-matplotlib模块的解决办法 1. 前言、概述2. 解决办法3. 可能出现问题4. 结果 1. 前言、概述 起因是我用习惯的colormap函数getPyPlot_cMap不能用了:【这个函数要调用PYTHON】 报错的地方: ModuleNotFoundError: No module named ‘ma…...
mk语法示例
这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...
英语什么时候加s和es
名词变复数一般情况下加s,以s,x,ch,sh结尾加es。一个名词如果表示一个或一样东西,它取单数形式,如果表示两个或更多的这类东西,则需要用名词复数形式。 1 以s,x,sh,ch结尾的词,加es。 2 以辅音字母(除a/e/…...
unity中方向的两种表示:欧拉角和四元数
欧拉角:简单来说就是你可以选择 0度~360度 的范围 四元数:在计算机图像学中,四元数用于物体的旋转,是一种复杂,但效率较高的旋转方式 Quaternion结构体代表一个四元数,包含一个标量和一个三维向量&#x…...
ViT-L-14.pt下载load checkpoint from xxx
load checkpoint from E:\BaiduNetdiskDownload\sd-webui-aki-v4\models\BLIP\model_base_caption_capfilt_large.pth stable diffusion反推提示词出现此提示时,需安装以下模型至sd-webui-aki-v4.cache\clip\目录 ViT-L-14.pt https://openaipublic.azureedge.net/…...
机械设备经营小程序商城的作用是什么
由于机械设备厂商品牌需要各地招商代理,因此在管理方面也需要工具进行高效管理。如今各个行业都在开展数字化转型解决行业所遇难题或通过线上销售解决传统三公里难题及品牌扩张难题、用户消费渠道少等难题,构建会员体系精细化管理,同时还需要…...
小程序跨页面传递参数的几种方式
当我们在开发小程序时,经常会遇到需要在不同页面之间传递数据的情况。为了实现页面间的数据传递,小程序提供了多种方法。下面将介绍几种常用的传递数据的方法。 URL参数传递:这是一种简单直接的传递数据的方式。在跳转页面时,可以…...
【算法与数据结构】--高级算法和数据结构--高级数据结构
一、堆和优先队列 堆(Heap)是一种特殊的树状数据结构,通常用于实现优先队列。堆有两种主要类型:最大堆和最小堆。最大堆是一棵树,其中每个父节点的值都大于或等于其子节点的值,而最小堆是一棵树࿰…...
小工具 - Python图片转PDF文件
前言 主要整理记载一些python实现的小脚本,网上基本转换要会员,懒得搞了,这个一键生成,可以打包成exe文件使用 单张图片转换成pdf、图片批量转换成pdf # coding UTF-8 import os from io import BytesIO from PIL import Imag…...
bitbucket.org 用法
这个网站需要魔法,注册完成后添加厂库时间2023.10 图1 图2 第二张图 ,不要.gitignore文件 sourcetree 1,创建前端项目 npm create vitelatest 2.打开vscode创建本地Git 看到Git代提交的文件 sourcetree,新建 已存在的本地厂库 提交到Git 添…...
lodash常用方法合集
安装lodash 建议安装lodash-es,lodash-es 是 lodash 的 es modules 版本 ,是着具备 ES6 模块化的版本,体积小。按需引入。 示例 npm i lodash-es import { chunk,compact } from lodash-es; /**按需引入*/ 1.chunk 数组分组 chunk(arra…...
解密WPF黑盒:5分钟掌握dnSpy BAML反编译核心技术
解密WPF黑盒:5分钟掌握dnSpy BAML反编译核心技术 【免费下载链接】dnSpy Unofficial revival of the well known .NET debugger and assembly editor, dnSpy 项目地址: https://gitcode.com/gh_mirrors/dns/dnSpy 你是否曾面对WPF应用程序的二进制界面资源束…...
别再为SURF/SIFT发愁了!Ubuntu 20.04下OpenCV_contrib离线安装全攻略(含预编译模型包)
Ubuntu 20.04下OpenCV_contrib离线安装终极指南:预编译模型包与避坑手册 在计算机视觉开发中,SURF、SIFT等经典特征提取算法依然是许多项目的基石。然而,当你在Ubuntu 20.04上尝试安装OpenCV_contrib扩展库时,可能会遇到各种网络下…...
从STC8G1K08A到SG90舵机:一个宿舍断电关灯器的硬件选型与避坑全记录
STC8G1K08A与SG90舵机的实战融合:智能断电关灯器的硬件设计精要 深夜被突如其来的灯光惊醒,这种体验对于宿舍生活的学生来说再熟悉不过。传统机械开关在断电后无法自动复位的问题,催生了一个有趣的硬件项目——基于STC8G1K08A单片机和SG90舵机…...
Livox Avia雷达实测:450米远距与70°大FOV,在无人机测绘中到底有多香?
Livox Avia雷达实测:450米远距与70大FOV如何重塑无人机测绘体验 当无人机搭载的激光雷达在300米高空依然能清晰捕捉到高压电线的细微振动,当单次飞行即可完成整片林区的三维建模——这正是Livox Avia带给测绘工程师的真实工作变革。这款面阵激光雷达用45…...
别再只看iostat了!用fio实测NVMe、傲腾和PMem,手把手教你读懂性能报告
从fio报告看透NVMe、傲腾与PMem的真实性能:工程师必备的深度解析指南 当服务器采购清单上同时出现NVMe SSD、傲腾持久内存和PMem选项时,大多数工程师的第一反应是翻看厂商提供的性能参数表。但真正经历过硬件选型的老手都知道,那些在实验室理…...
别再傻傻分不清!用ESP32和Arduino IDE实战,5分钟搞懂BLE服务与特征值
ESP32与BLE实战:用Arduino IDE五分钟掌握服务与特征值 刚拿到ESP32开发板时,我被BLE文档里那些Service、Characteristic、UUID之类的术语绕得头晕。直到有一次,我试着用手机APP控制板载LED,才发现这些概念其实就像超市的货架系统—…...
从零到一:Roboguide软件安装、激活与许可证迁移全流程实战
1. Roboguide入门:从安装包到许可证迁移全解析 第一次接触Roboguide的朋友可能会被这个工业机器人仿真软件的专业性吓到,但别担心,我当初安装时也踩过不少坑。作为发那科机器人官方指定的仿真平台,Roboguide在汽车焊接、物料搬运等…...
biliTickerBuy终极指南:5分钟掌握B站会员购抢票技巧
biliTickerBuy终极指南:5分钟掌握B站会员购抢票技巧 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy 在B站会员购的热门演出和限量周边抢购中,你是否总是因为手速不够快、…...
Claude Design 登场,设计工具分化,Figma“Sketch 时刻”将至?
关于 Claude Design 的思考与感悟 2026 年 4 月 18 日,山姆亨利戈尔德试用了 Claude Design,并对局势发展有了一些想法。随着产品团队规模扩大,设计需在工程组织中证明自身价值,促使设计向系统化发展。Figma 发明了组件、样式、变…...
别再死记硬背ARP了!用Wireshark抓包,5分钟带你亲眼看看局域网‘喊话’全过程
用Wireshark解密ARP协议:从抓包实战看局域网如何"喊话" 当你第一次听说ARP协议时,是否也被那些"广播请求"、"单播响应"的抽象概念搞得一头雾水?作为网络通信的基础协议之一,ARP(地址解析…...
