当前位置: 首页 > 面试经验 >

滴滴后端研发一面

优质
小牛编辑
104浏览
2023-03-28

滴滴后端研发一面

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

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

(验证码、先访问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的实习经历,所以抬了一手

#实习##实习面经##面经##滴滴#
 类似资料: