获得徽章 1
#青训营笔记创作活动#
2月17日 day13
今天再次学习了redis,redis 是一款优秀的缓存中间件,在企业级架构中占有重要的地位.
学习了redis的优缺点,数据类型,内存优化,分布式锁,缓存,哨兵,事务的实现等等went
展开
评论
#青训营笔记创作活动#
2月16日 day12
1.在InnoDB中,如果一条SQL语句能命中索引执行,那就会加行锁,但如果无法命中索引加的就是表锁。
2.死锁解决方案:
2.1 锁超时机制:事务/线程在等待锁时,超出一定时间后自动放弃等待并返回。
2.2 外力介入打破僵局:第三者介入,将死锁情况中的某个事务/线程强制结束,让其他事务继续执行。
3.死锁检测算法 - wait-for graph :
3.1 锁的信息链表:目前持有每个锁的事务是谁。
3.2 事务等待链表:阻塞的事务要等待的锁是谁。
3.3 通过innodb_deadlock_detect=on|off这个参数,来控制是否开启死锁检测机制
3.4 该算法通过查找是否闭环判断是否死锁
4.在业务允许的情况下,尽量缩短一个事务持有锁的时间、减小锁的粒度以及锁的数量。检查sql逻辑.
5. 锁的底层实现
展开
评论
#青训营笔记创作活动#
2月15日 day11
对应这种瞬时高并发的场景,可以使用:
页面静态化:对活动页面做静态化处理,只有点击按钮才会访问服务器
CDN加速:使用cdn使全国各地的用户就近获取所需内容,降低网络拥堵,提高用户访问响应速度和命中率
按钮:使用js文件控制秒杀按钮,只在秒杀时间点时才点亮,一般为了性能考虑,将css、js和图片等静态资源文件提前缓存到CDN上
缓存:使用缓存redis,部署多个节点,而不是直接连接mysql数据库,使用分布式锁和布隆过滤器
mq异步处理:将秒杀和下单分开,因为只有秒杀并发量大,使用秒杀给mq服务器发送mq消息
限流:基于nginx限流
基于redis限流
对同一用户限流,对同一ip限流,加验证码等方法
分布式锁
展开
评论
#青训营笔记创作活动#
2月14日 day10
这是Hertz框架的中间件,它使用 jwt-go 来提供 jwt 身份验证中间件。
学习了Hertz-JWT的使用,实现了一个用户登录得到demo来测试hertz-jwt。
展开
评论
#青训营笔记创作活动#
2月13日 day9
1.在 Hertz 中使用反向代理需要拉取社区提供的 reverseproxy 拓展。
2.拓展不只是能够实现简单的反向代理,在 reverseproxy 拓展中提供了许多可以自定义的可选项。
3.方法:
通过 NewSingleHostReverseProxy 函数设置反向代理的目标路径 /proxy 。接下来注册路由的路径为反向代理目标路径的子路径 /proxy/backend ,最后通过注册 /backend 映射反向代理服务 proxy.ServeHTTP 。这样我们通过 GET 方法访问 /backend 时就会访问到 /proxy/backend 中的内容。
展开
评论
#青训营笔记创作活动#
2月7日 打卡day8
1.注释尽可能全面,写有意义的方法注释
2.项目拆分合理的目录结构,根据不同的业务进行划分
3. 不在循环里远程调用、或者数据库操作,优先考虑批量进行。
4. 封装方法形参
5. 具备封装通用模板的编码能力
6.避免创建比必要的对象、异步处理、使用缓冲流,减少IO操作等
8. 可变参数的配置化处理
9. 会总结并使用工具类
10. 控制方法函数复杂度
...
展开
评论
下一页
个人成就
文章被点赞 1
文章被阅读 1,764
掘力值 203
收藏集
0
关注标签
0
加入于