当前位置: 首页 > news >正文

20230916后台面经整理

1.面对抢优惠券这样的高负载场景,你从架构、负载均衡等方面说一下你的设计? 答了参考Nginx进行负载均衡,然后在每台服务器怎么怎么弄(架构每一层怎么设计)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考https://toutiao.io/posts/6z3uu2m/preview,https://zhuanlan.zhihu.com/p/482817229
SLB负载均衡发给API网管再分给抢购系统
10w一分钟,28法则,8w10s,有40w人抢10s,4w/s的qps -》 常规系统1000/s(4核8G的机器,开200个线程处理请求)
后果:网络带宽打满、cpu使用率达到90%多、数据库负载过高、下游依赖频繁超时
例如:写数据尽量直接写缓存,然后异步写db;读数据尽量优先把数据缓存在系统jvm内存里,本地读取返回
在这里插入图片描述
击穿jvm和redis要查mysql:抢购系统内可以开一个后台线程,然后让他每隔30min自动去redis里查最新缓存数据,或者去商品系统查最新缓存数据,然后刷新本地缓存
缓存不一致:扣减and恢复的顺序不一致(乱序),所以要实现mq顺序消息,发到同一个分区有序
前端:页面上各类静态资源首先应分开存放,然后放到cdn节点上分散压力,倒计时用后端获取按钮变灰,查询和购票只能按一次,js限制时间
后端:同一个uid限制频率,nginx分发请求到不同机器,预处理是否还有余量
数据库:分片解决数据量太大,路由哪个库(范围,哈希(均匀),路由服务)
超卖:悲观锁解决安全,但慢,乐观锁版本号机制控制
稳定性:redis雪崩,先进性预热

2.用户隐私数据怎么处理?

1.哈希,md5等彩虹表攻击
2.加盐哈希(盐就是随机的字符串拼接密码)
3.匿名化、差分隐私、同态加密
在这里插入图片描述

3.https和http的区别,https怎么保证安全

在这里插入图片描述
详见小林coding:https://www.xiaolincoding.com/network/2_http/http_interview.html#https-%E6%98%AF%E5%A6%82%E4%BD%95%E5%BB%BA%E7%AB%8B%E8%BF%9E%E6%8E%A5%E7%9A%84-%E5%85%B6%E9%97%B4%E4%BA%A4%E4%BA%92%E4%BA%86%E4%BB%80%E4%B9%88

在这里插入图片描述
ca保证了公钥不能被伪造

4.算法:K个一组反转链表

妙不可言,k个一组翻转

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:n = 0cur = headwhile cur:n += 1  # 统计节点个数cur = cur.nextp0 = dummy = ListNode(next=head)pre = Nonecur = headwhile n >= k:n -= kfor _ in range(k):  # 同 92 题nxt = cur.nextcur.next = pre  # 每次循环只修改一个 next,方便大家理解pre = curcur = nxt# 见视频nxt = p0.nextnxt.next = curp0.next = prep0 = nxtreturn dummy.next

5.思维题

长方形纸片上有一个圆洞,怎样才能沿着直线把它剪成面积相同的两块(几何中心相连)
一根木棍掰成三段,组成三角形的概率(条件概率) 1/4

6.进程通信的方式,用过哪些

7.C++STL vector和数组的区别

8.信号量与互斥锁的不同

9.ATM机,怎么考虑它的设计

10.一亿个int类型的数字,怎么取top1w个,怎么用分布式的方案

11.有哪种排序算法是稳定的

12.C++怎么让一个对象只在栈上分配

13.java后端,多安全问题、遇到攻击怎么办?开发的安全问题

14.公钥私钥,token,盗用伪造鉴别

15.算法:最大子序和

16.算法:涉及一个数据结构实现LRU机制

17.TCP的流量控制和拥塞控制的区别,慢启动、拥塞避免、超时重传的概念

18.说出一些HTTP状态码

19.Select和Epoll的区别

20.LT和ET的区别

21.算法:翻转链表

22.算法:数字转成中文(小数点前最多十位,小数点后最多三位,带单位)

23.场景:怎么开发一个微信朋友圈

24.一个基本有序的数组,用什么排序最快,为什么?

25.TCp三次握手的过程(深入)

26.TCP字节流怎么知道哪些部分的作用,深挖TCP报文段的结构

27.算法:https://leetcode.cn/problems/LGjMqU/description/

28.操作系统是怎么解决进程之间的死锁

29.关系型数据库知道吗?说说3NF

30.你知道网站短链和长链吧?要你设计一个长短链解析系统,且你要考虑有的短链属于热点链接,访问量很多,你怎么设计?

在这里插入图片描述

31.敏感词处理?

http://www.lryc.cn/news/167724.html

相关文章:

  • 如何通过快解析测试接口内外网?本地内网ip让外网访问连接
  • 用c++实现五子棋小游戏
  • Android 12.0 SystemUI下拉状态栏定制化之隐藏下拉通知栏布局功能实现(二)
  • 通过finalshell快速在ubuntu上安装jdk1.8
  • 【Linux从入门到精通】多线程 | 线程互斥(互斥锁)
  • Echarts 散点图的详细配置过程
  • Nginx详解 五:反向代理
  • 【PDF密码】PDF文件打开之后不能打印,怎么解决?
  • 深入解析 qsort 函数(下),用冒泡排序模拟实现 qsort 函数
  • Azure + React + ASP.NET Core 项目笔记一:项目环境搭建(二)
  • Vmware通过VMware tools设置共享文件夹
  • RPA机器人流程自动化专题培训大纲 (针对大学生的版本)
  • 数据在内存中的存储——练习4
  • Python 06 之面向对象基础
  • 去除pdf/word的水印艺术字
  • 【Linux】使用 Alist 实现阿里云盘4K播放
  • Gof23设计模式之状态模式
  • 如何免费下载RunWayML产生的视频文件
  • 9.14 C++作业
  • java关于文件记录篇章之文件夹创建篇
  • 显示器显示的画面突然偏红色如何解决
  • 【element-ui】 el-table 表格动态合并相同数据单元格最全教程,可指定列+自定义合并条件,附完整代码
  • 管理方法论:6. 正视团队冲突——化解危机,长治久安
  • 基于SpringBoot的一套强大后台管理系统
  • 音乐项目后台管理系统出现的问题
  • 数据结构——图(图的存储及基本操作)
  • 2023年项目管理工具使用趋势分析及预测
  • Vue3 实现一个无缝滚动组件(支持鼠标手动滚动)
  • 【IP数据报】IP地址和MAC地址的区别
  • 高并发笔记