系统优化问题

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

用户画像如何存储
如何保证在线高并发、低延迟的访问
机器宕机、负载均衡问题
如果用户增长很快,在你的方案下,该如何扩容

解决方案:
一、建立用户关系表,用户id对应相应的偏好标签;用redis作为缓存数据库,对高并发能够起到比较好的缓冲效果,同时做redis集群配置,配置方式如下:
在当前路径如/usr/local/ 下新建cluster文件夹,并设置多个子文件夹(比如),命名为7031、7032 … 7036
在配置修改对应的conf文件
主要修改内容有
ip 服务器地址
port 端口
dir 数据存放路径
cluster-enable yes 设置集群启动方式
cluster-config-file 设置节点配置文件
cluster-node-timeout 节点超时时间
deaomonize yes 设置后台启动
appendonly yes 设置持久化方式默认的为rdb
集群启动方式可以通过shell脚本方式实现
为避免在机器宕机时发生数据丢失可以采用aof的持久化方式,将数据读写操作提取存入临时文件,同时相应的数据提取到后端DB中。
通过分布式集群方式减少单击流量,将用户分配在多个节点上。

二、通过nginx设置多个备用服务器节点,当服务器异常挂掉的时候,备用服务器可以顶上,用来解决负载均衡
nginx还可以实现反向代理(隐藏服务器)、正向代理(隐藏客户端)、负载均衡、静态资源服务器。

三、用户增长的快,可以通过增加服务器数量,扩大redis集群来解决,同时通过一致性哈希,确保新增节点和节点失效时候仍然能够对外提供良好的服务。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值