-
大型公司系统架构查看全部
-
采用存储过程后,seckillservice的执行秒杀不需要抛出异常(之前的异常抛出是为了告知spring的声明式事务的回滚及提交)。查看全部
-
一部分流量已经被cdn缓存锁拦截 不过秒杀的操作,秒杀的地址获取这样的请求不方便放入cdn中,所以访问到我们的服务器 我们的服务器会通过我们的dns查找到我们的地址 一般找到的是nginx地址,nginx一般部署到不同的机房,比如电信,移动,联通 这样的话智能的dns会根据用户的请求ip地址来智能的dns解析来请求最近的Nginx服务器 nginx还会给我们的服务器做负载均衡 之后会有jetty tomcat等我们的逻辑集群,用来放置我们的代码 访问到tomcat jetty服务器的时候,会用到缓存集群redis(根据数据量,使用规模,一般用一个redis集群) 会根据使用规模来调整集群 mysql,根据关键的id来分库分表,这里关键的id肯定是秒杀的id 因为同一个秒杀的id应该放在同一个数据库中,这样事务才会在同一个数据库中生效 根据seckillId来取模,分表(一般分表都是512张表,1024张表等等这样的翻倍) 然后按照负载及读写的请求量来做到分库 (分库分表框架,阿里巴巴的TDDL) 这样保证了同一个秒杀单在同一个数据库中完成事务,同时保证如果是非常庞大的请求, 可以把流量和读写的事务量分发到不同的数据库中 还会有一个统计分析组件,在多个DB中拉取秒杀单来做分析(类似于BI系统,各种数据统计报表)查看全部
-
秒杀存储过程java调用截图1 建议使用common-collections中的MapUtils工具类获取map中的值 MapUtils.getInteger(map,result,-2),-2表示设置默认值查看全部
-
秒杀存储过程实现截图4 存储过程中,row_count()函数用来返回上一条sql(delete,insert,update)影响的行数。 根据row_count()返回值,可以进行接下来的流程判断: 0:未修改数据; >0: 表示修改的行数; <0: 表示SQL错误或未执行修改SQL查看全部
-
秒杀存储过程实现截图1 重要:最主要的是业务逻辑,而不是存储过程的依赖与实现,简单的逻辑可以使用存储过程,并不需要特别关注存储过程 ;表示语句结束,由于sql语句中";"表示语句结束,存储过程中,";"也表示存储过程结束,所以定义DELIMITER $$,用$$表示存储过程语句的结束查看全部
-
4.Mysql事务行锁串行等待执行,一个事务提交或回滚,下一个事务才能执行。查看全部
-
缓存字节查看全部
-
秒杀地址接口优化查看全部
-
上一节讲解使用cdn、redis、mysal层缓存数据,提高系统的高并发查看全部
-
查看表或者存储过程创建的SQL show create table/procedure execute 表名/存储过程名\G 修改分隔符 DELIMITER 要定义的符号查看全部
-
java访问内存的时间查看全部
-
https://github.com/iemi/imooc-seckill
https://github.com/yoyo185644/seckill/tree/master/src
ChatGPT:
綜合上述內容,我們可以整理出以下關於CDN和秒殺操作最佳化的要點:
CDN:
- CDN(內容分發網路)是一個加速使用者獲取資料的系統,尤其適用於提供靜態資源和JavaScript等不變的資源。
- CDN部署在離使用者最近的網路節點上,可以提高資料的載入速度。
- 使用CDN可以避免訪問後端伺服器,提高效能並減輕後端伺服器的負載。
秒殺操作最佳化:
- 秒殺操作無法使用CDN快取,因為它涉及到寫操作或核心資料的請求,通常無法被快取。
- 對於秒殺操作,後端快取困難,因為庫存問題無法在快取中直接減少庫存,需要使用事務來保證資料的一致性。
- 秒殺操作可能會產生對資料庫表中某一行資料的大量update減庫存競爭,這是熱點資料的特點。
最佳化方向:
- 減少行級鎖持有的時間,快速執行commit/rollback操作,以釋放行級鎖,減少其他等待行鎖的執行緒的等待時間。
- 在秒殺操作中,將客戶端邏輯放到MySQL伺服器端,避免網路延遲和GC影響,可以使用定製SQL方案或儲存過程來實現。
- 儲存過程的設計可以讓一組SQL組成一個事務,在MySQL伺服器端完成,避免客戶端控制事務造成的性能干擾。
總結最佳化要點:
1. 前端控制:暴露介面,防止按鈕重複請求。
2. 動靜態資料分離:使用CDN快取和後端快取來提高效能。
3. 事務競爭最佳化:減少事務鎖持有的時間,將客戶端邏輯放到MySQL伺服器端,並使用儲存過程等方式實現秒殺操作的效能優化。
查看全部 -
投影片~~~~~~
查看全部 -
投影片~~~~~~
查看全部
举报