挑战月薪30k!4年Java开发太能说了!可惜就是感觉抓不住重点!

作者: 极海Channel分类: 计算机技术 发布时间: 2021-04-17 19:28:33 浏览:27905 次

挑战月薪30k!4年Java开发太能说了!可惜就是感觉抓不住重点!

希儿丶莲:
看这样设计行不,由于一般游戏排名的分数都是属于正态分布,那么根据业务需求,将整体排名进行一个区段划分,比如说满分12000分。将12000分~10000分分成一个区域,后续根据期望数据来继续划分,比如只有10wqps的话,1000万我分100个桶那么当玩家每次获得对应的分数范围的时候,将数据塞入对应的桶中,比如就用zset实现。那么我需要服务器前100名的时候,我去bulk0中获取前100,不够再从bulk1中补上。而如果是用户的个人排名的话,只要获取当前桶中排名+bulk0....bulkn的size长度即可获得[霜叶-疑问]

【回复】回复 @极海Channel :火箭🚀没造好就想进来拧螺丝?回家等通知吧![嗑瓜子]
【回复】回复 @极海Channel :管他呢,先上线[妙啊]
【回复】这个方案挺不错的,但是扔有两个小问题,第一个是前面bulk会不会负载过高,负载均衡怎么解决。第二个问题是如何计算全局视角排名百分比。
jemmy117:
各个面试牛逼 也没见几个自己写开源框架和开发语言的!

【回复】回复 @1344534343 :对啊!但是国内有区别吗!
【回复】中文开发语言都有,但是你确认要用么
可怜的怕怕:
1. up主给的解法,边缘计算的思路:并发查10机器里面的百分比,加权平均,但是 2. 第一台存前10%的分数: 只需要查一台机器可以计算总排名,但插入数据可能需要平衡分布操作 3. 第一台存分数最小的一千万人: 数据少的时候请求全在第一台机器上,插入也可能需要平衡 4. 我建议的最佳方案: 既然up主方案算的不是精确百分比,用基数排序的思路,每0.5分数段记录人数,后泊松分布或线性估算,即可快速计算排名百分比,占用内存=分段数*4字节

seplollipops:
计算机专业,学历卡的严重吗?考研没考好然后调剂到北京一群双非,犹豫要不要去读[捂眼]

【回复】要做算法AI之类就读研!做工程强烈建议本科尽快出来积累项目经验![笑]
【回复】回复 @seplollipops :据我所知杭州这边只有网易校招会卡学历要求211,对于社招,99%的公司对于开发要求都是本科即可,否则招不到人[笑]
【回复】回复 @极海Channel :我想问硕士那些985 211和双非硕士,我知道有些会卡学历,但这种情况严重嘛?
BestPractice:
1万qps如果搭了3台主从数据库,还需要使用缓存吗

【回复】主从读写分离是可以提高qps上限,但是性价比不高,主从主要还是做高可用,内存数据库做查询加速更灵活。
小海波XD:
向up学习,大佬 可以分享分享一年 两年 左右的开发面试么[doge],

【回复】https://b23.tv/TUzoUs 可以看看这个
cdacaa:
我听到了什么,缓存不存在穿透?[笑哭]

【回复】这个人只有一些工作经验。连基本概念都不熟悉,应该不是计算机专业毕业的。
v小氿氿:
1. 根据分数将redis分片,比如总分100分,每10分划一个redis分片(可能考虑分数的正太分布,不做等分比较好一些) 2. 每个分片有多少个人 , (在每个分片都要有一个这样的数据) 3.更新分数:根据分数找对应分片,更新该人员id的分数,同时更新所有分片下的人员总数。(增加人员分数记录、新旧分数不在同一分片、更新所有分片各个分片人员总数...这一大堆操作可以放在lua脚本) 4. 获取排名:根据当前分数找对应分片,总排名就是 前面的分片总人数 + 当前分片排名 优点:获取总排名数据的操作在一个分片就可以完成 缺点:操作之前需要知道玩家的当前分数; 每次更新分数,如果有分片人数发生改变需要同步到所有分片

【回复】嗯,是个不错的思路,这个方案就是写入的压力会很大了,这种场景下写入和读取的比例差别不大的情况不太合适,写入的并发太高了。其实不用维护每个节点都存全部人数,弱一致的权衡下读更方便扩展一些
想叫棉衣卫:
那个redis锁问题开个守护线程,每过2/3锁过期时间就自动更新锁过期时间,这样就算服务挂掉锁也能自己解开,也不存在服务没跑完锁就没了的情况,这样设计行不?

【回复】回复 @F00l-fool :那时的确没太理解,后来想起来redission就是watchdog的实现锁自动延时吧,up也学习了[doge]
【回复】一看up就没用过redis做过分布式锁
【回复】回复 @极海Channel :你还能俩机器抢着锁?一个机器中的一个线程抢到锁后,开启守护线程就可以了。
奋斗奋斗奋斗奋斗奋斗:
根本就不是真实的面试,就是自导自演的

【回复】真实的,假的被雷劈[大哭]

程序员 JAVA 程序员面试 经验分享 面试 JAVA面试

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

更多相关阅读