2021-9-25 美团售后服务系统后端一面【2024秋招】

2023-10-19 10:01

本文主要是介绍2021-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

  1. 服务器的接线和端口数量

    • 假设每台服务器都有一个主要的网络接口(例如,一个以太网接口),那么总共会有10万根接线。
    • 如果每台服务器都有一个网络端口,那么总共会有10万个端口。
    • 但这只是一个简化的估计。实际上,一些服务器可能有多个网络接口,或者在机房中可能使用了交换机和路由器,这会影响实际的接线和端口数量。
  2. 从数据库拉取10w记录的通信时间

    • 这个问题的答案取决于多个因素,包括每条记录的大小、网络带宽、数据库的性能和响应时间等。
    • 假设每条记录大小为1KB,那么10万条记录总大小为约100MB。
    • 如果网络带宽为1Gbps(约125MB/s),那么理论上需要不到1秒的时间来传输这100MB的数据。但实际的时间可能会更长,因为还需要考虑到数据库查询的时间、网络延迟等因素。
  3. 将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),最左匹配原则意味着在查询时,必须从左到右地使用索引的列。例如,可以使用索引查询aab,但不能仅使用bc

为什么MySQL要遵循最左匹配原则?

  1. 索引结构:MySQL主要使用B-Tree(特别是InnoDB存储引擎使用的是B+Tree)来实现其索引。在这种结构中,数据是按照索引列的顺序存储的。因此,如果不从最左边的列开始查询,MySQL将无法有效地使用索引。

  2. 效率:遵循最左匹配原则可以确保MySQL在查询时最大限度地利用索引,从而提高查询效率。

底层是怎么实现的?

  1. B-Tree索引:在B-Tree索引中,数据是按照键值的顺序存储的。对于复合索引INDEX(a, b, c),数据首先按照a的值排序,然后在a的每个值内部,数据按照b的值排序,以此类推。因此,如果查询不从a开始,MySQL将无法直接跳到索引的相关部分,导致查询效率降低。

  2. 索引查找:当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;}
}

这篇关于2021-9-25 美团售后服务系统后端一面【2024秋招】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/239087

相关文章

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has