首页 > 编程知识 正文

字节跳动笔试答案,字节跳动技术笔试

时间:2023-05-06 20:38:46 阅读:187824 作者:2862

链接:https://www.nowcoder.com/questionTerminal/3714988e1aa84fe1897dde526100a989
来源:牛客网

【设计题】今日头条会根据用户的浏览行为、内容偏好等信息,为每个用户抽象出一个标签化的用户画像,用于内容推荐。用户画像的存储、高并发访问,是推荐系统的重要环节之一。现在请你给出一个用户画像存储、访问方案,设计的时候请考虑一下几个方面:

用户画像如何存储

如何保证在线高并发、低延迟地访问

机器宕机、负载均衡问题

如果用户增长很快,在你的方案下,该如何做扩容

(1)将存储用户画像的数据经过哈希函数运算后得到一个key值,然后用key%服务器机器数,得到的就是该用户画像数据归属的服务器,对该数据增添,查询删除都在此机器上进行. 如果服务器变多变少时,用一致性哈希则可以解决这种问题。
负载不均衡的问题:可以引入虚拟节点技术解决,即同一机器经过不同的哈希函数计算出多个哈希值分布在环上,节点数变多了。平衡性自然会好。

1。建立用户关系映射表,用户和标签为常量,关系为映射。保存用户画像最好使用缓存,比如ememcached,同时后端要落地到DB;
2。有了内存缓存的话,访问速度自然会有提升,除此之外,还要提高缓存利用率,这样请求不会到DB去请求。
3。同时还要减少单机查询流量,将不同用户分配到不同的机器上,可以采用分布式,比如按照用户的地区,ID的号段进行分开,这样每个机器的请求都是独立的,可以命中缓存,提高系统的性能。
4。**一致性哈希,**保证结点变化后用户访问的机器不变,比如之前在一号机器访问的用户还是到一号机器。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。