超长的项目介绍,月薪40K+架构师岗面试,经典场景深度考察

作者: 极海Channel分类: 计算机技术 发布时间: 2023-06-25 18:00:00 浏览:21433 次

超长的项目介绍,月薪40K+架构师岗面试,经典场景深度考察

ice_liang:
最后一个设计题目说一下我的想法吧(还没听对方的回答),首先我们确定一下场景的需求,对于同时观看人数的要求实时性并不高,所以在这个情况下,我们就可以采用心跳的机制来做,这个可以满足存活检查和降低系统负载,如果有些要求很高的就可以采用socket的方式来了,网页的可以采用websocket,这个就对系统压力比较大,然后心跳之后我们就可以存入对应的视频id对应的key到redis中,我这里采用的存储结构是zset结构,value是观看人的id,然后scope为时间戳,这个情况下,同一个人的心跳过来,我更新时间戳就好了,不同的来就新增,然后定期根据scope来清理老的数据,例如我清理2分钟之前时间戳的所有的数据,,这个清理可以采用懒加载方式来处理,就是有人查询接口,然后redis定一个key,存在,则不刷新,不存在,则清理一下老的数据,然后zcard一下就可以统计出来正在看的人数量[吃瓜]

【回复】另外一方面,我想着创建这个zset的时候,应该判断下视频or直播间所属up,如果是大up要把key分散到不同的机器上。以避免热门视频直播间的key分散到一个机器上。 而且对于1w观看人数的key增加心跳时间到5分钟,人数在一万以下的2分钟每次。
【回复】回复 @i木瓜木瓜 : 我的想法是key超过1000或者几千的情况下不进行任何人数计算直接前端显示个1000+之类的
【回复】你说的方案和我们的直播间在线观众及主播直播在线状态是一样的,都是用心跳来做
可可要吃巧克力:
我也是40k+,我怎么不是架构师[酸了][酸了][酸了]

【回复】我不是架构师,为什么我不是40k[酸了][酸了][酸了]
【回复】回复 @极海Channel : 我能做架构师,为什么我没有40k[酸了][酸了][酸了]
【回复】回复 @御坂16510号 : 怎么才算架构师[妙啊]
犀利哉哉:
spi虽迟但到,这个人最强王者,动嘴能力远大于coding

【回复】回复 @极海Channel :深入问一下实操的内容都是支支吾吾答的不好,干的不多,说的多导致的
【回复】动嘴决定上限,动手决定下限,p7嘴更重要
【回复】最近疯狂用gpt 和copilot 我coding能力退化好多[doge]
Mikesya:
观看人数那个问题,我觉得跟我现在做的点赞功能有一点点相似,肯定不能来一个或者少一个更新一次数据库,这种直接崩溃,但是无论点赞还是观看人数都不是核心业务,B站前不久出的事故就是,视频还可以看,点赞数观看数都没了就是一个例子,这种场景我是用视频的id作为key,value为用户id的set集合,用户多设备登录也不怕,这个数字应该不需要精准,每1分钟走一次定时任务统计数量同步到db,只是做一个最终一致性,这种方案最大的好处是减少数据库压力,缺点我这个方案中如果用在B站,应该不太适用,尤其是定时任务那里全部视频扫描一遍更新db也太耗时了,暂时没想到优化方案。

【回复】回复 @极海Channel :redis set设置过期时间,每分钟前端做一次请求重置,我瞎说的,不知道行不行[tv_笑哭]
【回复】回复 @甘愿被岁月看透 :点赞数是这样,你怎么做到记录哪个用户点赞了哪条评论,就是用户退出去点回来还能看到他点赞的记录,我直接就没删除redis里的数据,因为数据量太少也不需要这么做
【回复】你的点赞方案是怎么样的呢
ChlZhYa:
[doge]这是 SL 的面试者吗,技术栈和业务方向都高度重合

雨打湿了头:
正好最近在想那个请求合并怎么保证触发回滚的时候已经完成扣库存,是不是也可以放到一个队列里[思考]

【回复】细说除了本地事务原子性我都不是特别认可,当然有兜底最终一致说清楚也可以[妙啊]
宝藏男孩吴以岭:
恕我狂妄了,我个人觉得这个老哥是不是靠学历和毕业大厂然后去小厂混的架构师。94年的不算老,哪怕做架构师做的早,也不可能一点技术细节都说不清楚。如果很早就纯做架构加偏管理,不写代码了,但他方案设计也不行 总之,我不知道这小伙怎么混到架构师的,他的技术水平不敢恭维,他的职业选择我辈楷模

肥又傻:
海哥提的方案会热key,可以用set,key是视频id:当前分钟,value存用户id,每次客户端心跳插入set,设置两分钟的过期时间,读计数的话就是count上一分钟的set

【回复】热视频的话不用给出具体数字,某个key超过1000个元素不再add,前端显示1000+人就行
【回复】[思考]你认为这个方案如何
雨打湿了头:
观看人数那个是不是可以,用户id为key,正在看的视频为val,然后key过期的时候做一个回调或者通知去改观看人数

【回复】回复 @极海Channel :设置多久得按业务来吧,b站视频应该是有分片的,过期时间就是分片时间稍微长一点,每次拿分片的时候做个续期,这样可以吗。[微笑]
【回复】回复 @雨打湿了头 :你可以抓包B站好像就是这么实现的[doge]
【回复】回复 @极海Channel :我主要想着反正也要拿分片,是不是就顺带当心跳了,还眨眼儿呢能是个死人吗。[呲牙]不知道这么理解对吗
明天还下雨嘛:
这不行啊,p7就这样吗?我感觉面小公司顶多到高级开发

三海Lee:
这声音不太好听清[笑哭] 海哥下次可以换个清晰度高点的声音

同业拆借利率:
请教一下,面试29分钟左右,在java SPI 那一块儿 讲到 bean的生命周期 知识点 是否可以通过Aware这个接口BeanFactoryAware去 自己实现这个接口,拦截之后自己去代理改配置吧,实现不被nacos 或者Eureka进行注册之类的 另外还有一个 spring actuator 好像可以单独给某一个 服务实例做修改配置,但我没用过。请 一眼顶针帮忙 鉴定一下真假

【回复】流程先初始化provider bean再注册这之间切入即可,像dubbo提供了dubbo.registry.xxx相关配置直接操作[妙啊]
星仔yeah:
可能我认为的架构师和现实的架构师是两回事吧,之前一直以为架构师是林纳斯脱袜子这样的[笑哭]

幸运酋长:
希望海哥后面可以出一个文字版本,发到专栏里,或者做成笔记发到评论区[思考],看着属实有点长[辣眼睛],不过相信海哥的粉丝都是老铁粉都能看完[doge]

【回复】回复 @极海Channel :其实给个ai的字幕就好了,有这个文本很方便做笔记,还可以让gpt提前帮忙看看总结一下。 我的个人经验是:如果有ai的字幕,相比没ai,我总结效率提升至少一倍
【回复】[笑哭]工作量惊人,课代表呢

计算机 技术 程序员 互联网 面试 高薪 项目 大厂 数据库 Java

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读