1. 电商系统包括哪些?
概念 元素 电商技术架构2. 网易严选的流程是什么?
网易严选3. 网易严选的架构演变是什么样的?
1)最开始3个人,前端直接静态写死,没有和后端相连。
石器时代
2)拆分数据库,然后将用户访问多但是相对独立的comment模块挪出来,涉及到数据库的挪动,则需要要么停机移库,要么使用双写,则不会停机。此时仍然是三个人。
青铜时代
3)采用微服务模式。
4)搭建业务中台,使用service mesh,成为DevOps。引入了Jira 新时代
4. 网易严选的业务架构
业务架构技术架构
5. 网易严选的技术选择是什么标准?
答:开源为主,自研为辅。根据社区活跃度,技术成熟度,和业务契合度,以及开发上手度来做考察。
6. 任何时刻都应该考虑三个要素:质量,效率,成本。
7. 架构是3分设计+7分演变。
8. 用户的设计是什么?
答:通过缓存来做字段的map;设计用户主表,同时额外的字段放在副表。额外的字段可以用kv来做,这样就可以无限量扩展了。
用户
9. 如果要放自定义表情,就需要将数据库设置为utf8-mb4
10. 库存要可追溯,这样就能知道什么时候进行的归还,什么时候进行的售卖,或者超卖。
库存11. 库存有两个维度,一个维度是实际库存,一个维度是销售库存。
12. 库存预占。
13. 可以使用redis的sorted set,这样就能排序根据算法得出的值,方法是先删除该值,然后再插入。
14. CDN的运维经验:1)在源站上存储一定要选择多副本,这样就可以保证CDN的高可用性;2)也要注意有可能CDN回源的时候会被某些当地的网络运营商给劫持,从而使得用户无法访问,建议设置为https;3)选择合适的http访问策略,例如Etag或者cache-control,网易严选使用的是cache-control,因为Etag对于他们的访问性能损失比较大;4)cdn厂商已经支持http2,速度快于http1
15.订单包括预定的流程。
订单流程模型
静态化
16. 商品的属性可以根据不同的种类group在一起,形成一个域,方便一起获取。
17. 业务缓存模块设计
业务缓存模块设计18. 购物车实现,里面有快照实现,即需要告诉用户你加入到购物车还没有加入购物车的时候便宜了多少钱。
购物车购物车
购物车
19. 下单如何设计
下单流程下单特点
分布式事务自研开发
DTS
20. 库存优化,宁愿先被占用,让用户不能买,也不愿意出现超卖。
库存21. 如何做大促?
大促大促
容错评估和能力摸底
22. 限流组件,一般有令牌桶和滑动窗口两种策略,前者一次性发10个令牌,然后这10个令牌中不能超过访问次数;后者是在一定时间范围内不能超过访问次数。如果要做分布式限流,就需要分布式缓存,将lua脚本放入redis,然后调用计数器来使用。
限流组件拦截器
拦截器
预案
23. 秒杀,其中风控是指这个用户平时的操作习惯,如果不符合目前的预期,则可以禁止其操作。
秒杀特点秒杀
网友评论