access做网站企业邮箱开通
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.你知道网站短链和长链吧?要你设计一个长短链解析系统,且你要考虑有的短链属于热点链接,访问量很多,你怎么设计?

