每日学习思考笔记(第四期)

103 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情

组建了一个每日学习群 互相督促 已经开始一段时间了,有想法的可以 加微信 yuyezhiji 麻烦备注原因

1 不要去 开课吧 和子公司 问原因就 自己百度去

2 上节回顾/本节重点/上节思考题

2.1 本节讲解

尝试新的学习方式,一天一发

1.  08 | 秒杀系统设计:你的系统可以应对万人抢购盛况吗?
2 volatile 初步学习
3 小学英语 自己实力不行,只能从小学开始了
4 程序员的底层思维
5 思维导图10堂客
6 控制饮食/运动
7 大厂案例 库存系统高并发

心愿列表

1 做一个 sql语句 字段解析的程序 把字段名 放到es 保存
2 cdn 实践一下 申请域名中 写技术方案文档 锻炼
3 

问题

1 syn 可重入么?
2 如果不 sleep interrupted 会什么样 需要测试
3 

2.3 上节 思考题解答

4 今日所学

4.1 秒杀系统设计:你的系统可以应对万人抢购盛况吗?

1 需求


为了应对这种比较特殊的营销活动,我们启动了一个专门的秒杀项目,项目代号是“Apollo”。Apollo 的核心挑战是:如何应对突然出现的数百倍高并发访问压力,并保证用户只有在秒杀开始时才能下单购买秒杀商品?接下来我们就看看 Apollo 的需求与技术架构吧。

2 需求分析

2.1 独立开发部署秒杀系统,避免影响现有系统和业务

2.2 防止跳过秒杀页面直接下单

3 概要设计

Apollo 要解决的核心问题有: 3.1 如何设计一个独立于原有电子商务系统的秒杀系统,并独立部署。这个秒杀系统如何承受比正常情况高数百倍的高并发访问压力。

3.2 如何防止跳过秒杀页面获得下单 URL。

用户在浏览器打开秒杀商品页面,浏览器检查本地是否有缓存该商品信息。如果没有,就通过 CDN 加载,如果 CDN 也没有,就访问秒杀商品服务器集群。用户刷新页面时,除了特殊 JavaScript 文件,其他页面和资源文件都可以通过缓存获得,秒杀没开始的时候,特殊 JavaScript 文件内容是空的,所以即使高并发也没有什么负载和带宽访问压力。秒杀开始时,定时任务服务器会推送一个包含点亮按钮指令和下单 URL 内容的新 JavaScript 文件,用来替代原来的空文件。用户这时候再刷新就会加载该新的 JavaScript 文件,使购买按钮点亮,并能进入下单页面。下单 URL 中会包含一个随机数,这个随机数也会由定时任务推送给下单服务器,下单服务器收到用户请求的时候,检查请求中包含的随机数是否正确,即检查该请求是否是伪造的。进入下单服务器的请求会被服务器进行限流处理,每台服务器超过 10 个的请求会被重定向到秒杀结束页面。只有前十个请求返回下单页面。用户填写下单页面并提交到下单服务器后,需要通过全局计数器进行计数。全局计数器会根据秒杀商品库存数量,确定允许创单的请求个数,超过这个数目的请求也将重定向到秒杀结束页面。最终只有有限的几个用户能够秒杀成功,进入订单处理子系统,完成交易。


5 volatile

基本所有地方 读写都用的syn 锁,结合单例模式


6 小学英语

元音字母 a e i o u

复数/非复数

1 一般情况下 加s

2 s/x/sh/-ch 加es

3 以辅音字母 + o 结尾的 加es 特殊 :photo - photos

4 以辅音字母 + y 变为 -ies

5 以fe/f 结尾的 加 ves

6


7 大厂案例 Saas模式下CRM产品的演进逻辑

Saas模式下CRM产品的演进逻辑.png

8 程序员的底层思维

9 前面思考和应用场景解答 (在此之前 请再次思考前面的问题 )

8 总结:

每日学习

9 下节预知

下周 针对 怎么防止文件写到一半 宕机导致的一致性问题 解析下

10 复习昨天学的 最好讲给一个人听,互相学习