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…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
Windows 下端口占用排查与释放全攻略
Windows 下端口占用排查与释放全攻略 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。 一、准…...