敖丙大佬面试视屏学习(一)

敖丙面试了一个大厂一年经验的程序员,看完之后,感觉自己很多方面的积累还不如人家一个一年经验的人。
尤其是今天学习的时候,感觉学的好累,感觉自己要炸裂了,感觉不会的太多了。
万万没想到一个视频给我看清醒了,还是要积累和学习,加油!!!

面试全过程:https://blog.csdn.net/qq_35190492/article/details/105041405
下面说一下我能想到的回答,然后整理一下
这个是在我没有被面试的时候想到的 面试的时候还是会紧张,可能就想不到这么多了
面试时闻到的业务问题,学习一下就好,非业务的问题,就一一记录,梳理一下

一:系统高并发访问的时候应该怎么处理

1、拆服务,将系统根据业务拆分成不同的微服务,进行请求分流,保证不是一个服务同时受到全部的请求
2、消息中间件:削峰,通过一些消息中间件进行一些数据请求的管理保证请求管理和异步处理 以此来保证,服务器不会一瞬间被请求冲垮
3、分布式数据库:读写分离,保证写操作的一致性,并保证读取数据的一个迅速性
4、缓存数据库Redis:一部分非重点需要入库的数据,存放在缓存中缓解数据库的压力

下面附上一份 我之前面试要求设计一个分布式 高并发系统时 应该怎么做:
/**
*
* 1、首先需要在web层控制,用户访问点击的次数 前台首先现在用户点击
* 每次点击都转圈或者跳离这个页面保证 等待这个请求响应完成后才能进行下一次点击
* 而且比如说一次一共有200张票,先发180张,留百分之十也就是20张进行一个容灾方案保证一些无法完全同步管理的请求
* 最终可以有正常的票来买入
* 2、但有时用户比较机智,同时开好几个窗口同时点击的话,这种,可以加入消息中间件,过滤一下请求
* 例如通过用户id 或者ip过滤
* 3、如果有人控制着大量的肉鸡账号,高并发大量攻击请求,可以通过一些算法限制这些用户
* 因为这些用户上一般来说本身就没有什么操作记录,通过这种类似的算法排除一些肉鸡账户
* 4、如果真的像春运抢票的那种情况,真的有很多人抢,可以使用消息队列按照顺序
* 存储这些请求依次进行数据的处理,并设置过期时间,类似于购物买单前会给半个小时付费
* 如果没付费就关闭这个请求
* 5、并且也要设置请求超时时间 ,如果一段时间内排在队列中的请求都来不及处理,就返回 失败让用户再次发送请求
* 6、请求过来后需要处理,首先多线程肯定是必要的,可以参考NIO或者异步IO处理模型,关键操作同步执行
* 例如数据入库之类的 订单支付成功之类的信息 其余不重要的步骤做成异步的增快相应
* 7、一些非关键性数据存储在Redis之类的缓存数据库中即可,在Redis库中锁定一张票后就可以返回请求
* 告诉用户可以进行支付操作了 ,将步骤分离,不至于一部将全部步骤完成增大服务器压力
* 8、关键的支付和确认订单请求过来 因为之前的层层过滤,基本上已经可以保证,不会存在大量的请求攻击了
* 这时就可以进行请求的同步操作,保证支付类操作的事务性
* 9、数据库可以采用读写分离的分布式数据库保证了数据的读取和写入操作不会互锁,保证了数据的正确写入
* 10、还有就是拆分系统,比如说用户管理系统,订单支付系统 ,商品管理系统等都做成微服务
* 分担请求,规避了某一个服务过于高压的状态
* 11、使用d

  • 28
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值