首页 > 其他分享 >宁德时代秋招一面

宁德时代秋招一面

时间:2023-08-16 11:58:08浏览次数:33  
标签:一面 副本 key 删除 线程 消息 宁德 秋招 leader

1.硕士的研究方向? 人工智能了解程度? python,java

2.携程实习时,软件工程的理念,软件工程的整个过程,软件开发模式,整个项目中的困难点

3.gitlab 基于当前版本回滚上一版本,操作

git log查看commit记录,使用git reset --hard [commit_sha]
将修改push到远端git push -f -u origin target_branch

4.挂号平台项目,redis 中的数据类型? 使用的哪个版本? 新的数据类型

常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。
随着 Redis 版本的更新,后面又支持了四种数据类型: BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增,专为消息队列设计)。

5.redis 缓存的淘汰策略

常见的三种过期删除策略

  • 定时删除策略,在设置 key 的过期时间时,同时创建一个定时事件,当时间到达时,由事件处理器自动执行 key 的删除操作。
  • 惰性删除策略,不主动删除过期键,每次从数据库访问 key 时,都检测 key 是否过期,如果过期则删除该 key。
  • 定期删除策略,每隔一段时间「随机」从数据库中取出一定数量的 key 进行检查,并删除其中的过期key。
    Redis 选择「惰性删除+定期删除」这两种策略配和使用,以求在合理使用 CPU 时间和避免内存浪费之间取得平衡。

内存淘汰策略

6.消息队列的作用

  • 通过异步处理提高系统性能(减少响应所需时间)
  • 削峰/限流
  • 降低系统耦合性。

7.使用 MQ 需要注意的点,防止消息丢失,消息幂等,重复消费,服务端如何

消息丢失

  • 生产者send后使用ListenableFuture通过添加回调函数得到最终结果。 消息发送失败是,设置重试次数重试间隔
  • 消费者
    Kafka 为分区(Partition)引入了多副本(Replica)机制。分区(Partition)中的多个副本之间会有一个叫做 leader 的家伙,其他副本称为 follower。我们发送的消息会被发送到 leader 副本,然后 follower 副本才能从 leader 副本中拉取消息进行同步。生产者和消费者只与 leader 副本交互。设置 acks = all,acks 的默认值即为 1,代表我们的消息被 leader 副本接收之后就算被成功发送。当我们配置 acks = all 表示只有所有 ISR 列表的副本全部收到消息时,生产者才会接收到来自服务器的响应

消息幂等 重复消费
出现的原因

  • 服务端侧已经消费的数据没有成功提交 offset(根本原因)。
  • Kafka 侧 由于服务端处理业务时间长或者网络链接等等原因让 Kafka 认为服务假死,触发了分区 rebalance。
    解决方案
  • 消费消息服务做幂等校验,比如 Redis 的 set、MySQL 的主键等天然的幂等功能。这种方法最有效。
  • 将 enable.auto.commit 参数设置为 false,关闭自动提交,开发者在代码中手动提交 offset。那么这里会有个问题:什么时候提交 offset 合适?
    • 处理完消息再提交:依旧有消息重复消费的风险,和自动提交一样
    • 拉取到消息即提交:会有消息丢失的风险。允许消息延时的场景,一般会采用这种方式。然后,通过定时任务在业务不繁忙(比如凌晨)的时候做数据兜底。

8.java 面向对象的三个特性

9.java 多线程,创建线程的方式,为什么不推荐直接创建 Thread 方法? 为什么使用线程池?线程池创建线程的操作

1)每次通过new Thread()创建对象性能不佳。
2)线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。
3)缺乏更多功能,如定时执行、定期执行、线程中断。
4)因为线程类已经继承了Thread类,所以不能再继承其他父类。
相比new Thread,Java提供的四种线程池的好处在于: 
1)重用存在的线程,减少对象创建、消亡的开销,提升性能。
2)可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。
3)提供定时执行、定期执行、单线程、并发数控制等功能。

采用实现Runnable、Callable接口的方式创建多线程的优缺点。
1)线程类只是实现了Runnable接口与Callable接口,还可以继承其他类。
2)在这种方式下,多个线程可以共享一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。

10.spring 三级缓存,循环依赖

11.数据库的引擎,两者的区别

12.笔试题的算法题,兑换零钱,不同金额的硬币,组成一个金额的最小硬币数

标签:一面,副本,key,删除,线程,消息,宁德,秋招,leader
From: https://www.cnblogs.com/firewoood/p/17633375.html

相关文章

  • 2024年秋招赛码网刷题-判断奇偶数、读取未给出行列数的矩阵
    1defis_even(n):2return1ifn%2==0else034n=int(input())56result=is_even(n)7print(result)#最后一行不能用return因为return只能在函数内部使用。在顶层代码中用return不合法 ......
  • 【字节跳动】9-22秋招测试开发一面面经
    作者:洛枫、1、接口如何保证幂等2、数据库索引种类按数据结构分类可分为:B+tree索引、Hash索引、Full-text索引。按物理存储分类可分为:聚簇索引、二级索引(辅助索引)。按字段特性分类可分为:主键索引、普通索引、前缀索引。按字段个数分类可分为:单列索引、联合索引(复合索引、组合......
  • 人在实习,秋招无处安放
    了解校招、分享校招知识的学长来了!秋招火热进行中,不少大厂都开启了秋招之旅,相信大家也有了切身的体会。不过有的朋友可就犯了难:实习中,没有时间准备秋招,转正与否还是未知数。相信这是大多数在实习的同学的苦,实习时间短,感觉自己没跟上、也没学到东西。那应该冲转正呢?还是冲秋招呢?冲转......
  • 【CV夏季划】2021年有三AI-CV夏季划出炉,冲刺秋招,从CV基础到模型优化彻底掌握...
    2021年的有三AI-CV夏季划正式发布,并且这也是最后一届由言有三本人直接带领的夏季划小组,仅限于今年。有三AI-CV夏季划是言有三直接一对一带领的深度学习和计算机视觉学习计划小组,目标是在新手入门的基础之上,彻底掌握好CV的重要方向,同时提升模型设计与优化的工程代码经验。什么是有三......
  • 【通知】如何让你的2020年秋招CV项目经历更加硬核,可深入学习有三秋季划4大领域32个方
    眼看着2020年上半年已经所剩无几了,大家也经历了一个不一样的学期,许多即将毕业的同学和准备换工作的朋友也在开始准备秋招了。为了让大家在深度学习与计算机视觉方向上掌握更多硬核的项目能力,有三AI秋季划准备了4个小组,每一个小组有8个方向,供大家深入学习。当你在某一个领域里做到极......
  • 猎人基因: ADHD的另一面
    我在科学的海洋中探索,期待着每一个未知的发现。然而,人类的大脑仍然是一个充满神秘和奥秘的领域。在这一次的探索之旅中,我将带你一起研究一种被称为注意力缺陷多动障碍(AttentionDeficitHyperactivityDisorder,简称ADHD)的情况。一些人称之为“猎人基因”,但这是否科学,我们一起来看......
  • 秋招准备
    2021年整理LeetCode最新刷题攻略分享(附中文详细题解)机器学习面试相关知识点2021年整理LeetCode最新刷题攻略分享(附中文详细题解)......
  • 你的秋招节奏是怎样的?
    本文首发自公粽hao「林行学长」,欢迎来撩,免费领取20个求职工具资源包。了解校招、分享校招知识的学长来了!周末了,不知道大家的秋招步伐有没有停下来。接下来将有不少笔试面试,希望大家能保持求职的最佳状态!今天学长就来和大家聊聊秋招如何跟上大部队的节奏。01提前了解时间节点在秋招......
  • 秋招,你的自我介绍可还行?
    本文首发自公粽hao「林行学长」,欢迎来撩,免费领取20个求职工具资源包。了解校招、分享校招知识的学长来了!秋招陆续进行,面试也在开展。一场常规的面试,面试官提出的第一个问题几乎千篇一律:“请简单地做一下自我介绍”。这时,诸君又该如何应对呢?今天学长就来和大家聊聊自我介绍这回事儿......
  • 集合(京东2017秋招)
     1#include<stdio.h>2#include<math.h>3intmain(){4inti=0,j,k,h=0,total=0;5intnm[5][2],a[5][10000],b[5][10000],c[20000];6while(scanf("%d%d",&nm[i][0],&nm[i][1])!=EOF){7for(j=0;j<nm[i][0];j++)......