随笔分类 - 慕课网秒杀系统
摘要:一。应用优化的口诀,解决大部分问题 1.缓存 :redis, guava cache, openresty lua 2.异步 : 支付宝微信的支付会提供异步回调接口,返回支付结果。支付链路很复杂,耗时长 3.批处理:写操作 二。mysql 单机性能提升 配置 mysql执行变更sql时首先写undo
阅读全文
摘要:问题1:下单的请求可以通过脚本不停的刷造成黄牛还有对服务器的压力 可以在秒杀令牌颁发的过程中做限购 比如一个用户只能拿一个令牌等逻辑 问题2:秒杀下单逻辑和秒杀下单接口写在一起,强冗余。即使活动不开始,也可以作为普通商品下单。会对交易系统造成无关联负载 解决:引入秒杀令牌,将秒杀下单逻辑放到生成令牌
阅读全文
摘要:一。关于消息队列的事物问题 spring的@Transactional标签只有当整个方法执行完成后才commit,这样如果因为网络问题即使整个方法执行成功,方法中消息队列发送成功,但是commit时失败了,减库存的rocketmq无法回滚。 解决方法1:spring @Transactional提供
阅读全文
摘要:问题:下单操作需要多次调用数据库,查询商品信息,用户信息,修改库存数据,造成性能瓶颈。 优化方向:读取数据改为从缓存读取,修改库存数据改为修改缓存数据在用消息队列异步修改数据库。可以用rocketmq的异步事务型消息来保证redis和数据库数据同步,在缓存异常情况可以用数据库数据来恢复。 1.交易验
阅读全文
摘要:1.redis集中式缓存 //商品详情页浏览 @RequestMapping(value = "/get",method = {RequestMethod.GET}) @ResponseBody public CommonReturnType getItem(@RequestParam(name =
阅读全文
摘要:1.查看进程使用情况 ps -ef | grep java 查看进程号,30589 netstat -anp | grep 30589 查看该进程的使用情况 pstree -p 30589 | wc -l 查看线程数 top -H 查看CPU使用情况 [root@iZbp1dtm752cu7uoi7
阅读全文
摘要:1.springboot打包 <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1
阅读全文
浙公网安备 33010602011771号