滴滴后端研发一面

主要工作:基础架构(中台)

  • 开始还是项目拷问(但是没有深入)
  • 项目(学校的全校数据库是怎么交互的?)
  • 外卖项目(缓存优化)

(验证码、先访问Redis,主从复制怎么实现的?)

  • 做这些项目遇到的难点和收获
  • 解决问题的思路
  • RocketMQ用在项目什么地方?(做消息队列缓存一致性balalbala)
  • RocketMQ(特性)(解耦、削峰)

RocketMQ:

  1. NameServer:整个MQ集群提供服务协调与治理,具体就是记录维护Topic、Broker的信息,及监控Broker的运行状态,Name Server是一个几乎无状态节点,可集群部署,节点之间无任何信息同步,相当于注册中心.
  2. Broker:消息服务器,作为server提供消息核心服务,每个Broker与Name Server集群中的所有节点建立长连接,定时注册Topic信息到所有Name Server;
  3. Producer:消息生产者,业务的发起方,负责生产消息传输给broker.
  4. Consumer:消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理

RabbitMQ:

  1. Exchange:交换机的作用就是根据路由规则,将消息转发到对应的队列上。.
  2. Broker:消息服务器,作为server提供消息核心服务
  3. Channel:信道是建立在真实的TCP连接内的虚拟连接.
  4. Routing key:生产者将消息发送到交换机时,会在消息头上携带一个 key,这个 key就是routing key,来指定这个消息的路由规则。
  5. Binding key:在绑定Exchange与Queue时,一般会指定一个binding key,生产者将消息发送给Exchange时,消息头上会携带一个routing key,当binding key与routing key相匹配时,消息将会被路由到对应的Queue中。


  • final finally 修饰类、变量、方法区别?
  • java 线程和进程区别?
  • 线程池用在什么地方,核心参数(核心线程数、最大线程数、心跳时间。。。)
  • 多线程的实现方式(继承Thread类、实现runnable等八股)
  • redis数据结构
  • 以上的数据结构用在什么地方
  • 做http请求 post和get 的区别?和安全性

1.get是从服务器上获取数据,post是向服务器传送数据。

2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

4.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。(这里有看到其他文章介绍get和post的传送数据大小跟各个浏览器、操作系统以及服务器的限制有关)

5.get安全性非常低,post安全性较高。

  • Linux常用指令
  • 获取进程号的命令grep
  • 怎么通过进程号看端口号
  • 两数之和(爱了爱了)


暂时记得这么多,一面感觉就是常规八股,期间面试官一直在很温柔的指引和提示,可能是因为有的工作需要用到python,而我正好有一份python的实习经历,所以抬了一手

#实习##实习面经##面经##滴滴#
全部评论
瑞吉外卖
1 回复 分享
发布于 2022-11-26 16:47 广东
面完之后多久有结果啊
1 回复 分享
发布于 2022-11-03 19:06 辽宁
用的是Rocketmq的分布式事务消息吗
点赞 回复 分享
发布于 2022-11-20 10:25 广东
两数之和😂,
点赞 回复 分享
发布于 2022-10-28 23:36 重庆

相关推荐

2025-12-24 15:12
四川大学 Java
在秋招的少年很想吃开...:腾讯特别喜欢问计算机网络
点赞 评论 收藏
分享
2025.3.20下午3点1.面试官介绍业务2.自我介绍3.说一说布隆过滤器的实现,为什么用谷歌的布隆过滤器(轻量级)?,有没有看过他的源码?(没有)4.实习和区块链有关,对他了解吗?(做二次开发,没碰底层,简单介绍区块链)5.说一说简历里面写的oom问题?这里有用到jinfo等命令吗?(没有,比较简单的oom问题没用到这些命令)画火焰图了吗?(没有)?6.线程池使用的全过程?有监控过线程池吗?(没有)7.有没有解决过死锁问题?(没遇到过,但是看过很多解决方案)8.java锁的实现方式?9.分布式锁的实现方式?运用?(他说线程池经常配合锁一起用,没这样用过)10.Linux上出现很多time wait怎么排查(不会)11.三次握手四次挥手的过程中服务器的状态(不会)12.用过socket吗?(课设用过,他说那过)13.长链接用过吗?(没有)14.用的Docker版本多少?(不记得)15.Docker相关命令16.Docker底层是docker d还是container d(没听说过)17.Docker用的是桥接还是host(应该是用桥接,面试官:所以你只是会用命令但是并没有了解过底层是吧-对)18.进程、线程、协程的区别?进程间的通信方式?还知道其他的吗,比如java机这种?(没听说过),有使用过共享内存吗?(没有)19.所以没有手写过协程之类的是吧?(没有)20.他说给了个简单的Sql执行-sql语句:select A.a A.g from user where a=1,b=2 group by g 有两个索引(a,b,c)和(a)他会走索引吗-会吧(答错了,他说有group排序就不行,但是查了发现a,b好像确实还是用到索引了,要是联合索引包括g,group也会用到索引)算法:手撕LRU(让我看完题目问我思路,说了双向链表或者大顶堆,问我多久能写完,想了一下自己也不太清楚什么时候能搓完,他说java搓大顶堆挺耗时间的,那换一道,结果换了没写出来,太菜了)面评脏
查看17道真题和解析
点赞 评论 收藏
分享
评论
6
53
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务