2024学习节奏与进度
八月
8.02
-
[x] 分布式锁
-
[x] redisson
-
[x] 短网址项目有
8.03
- [x] 记忆化搜索
- [x] springCloud
8.04
- 记忆化搜索
- 线性dp
- leetocde72编辑距离的状态转移理解
- SpringCloud
- Nacos原理与配置
- OpenFign 使用
- GateWay 网关原理
8.05
- 动态规划 01背包 完全背包 线性dp 记忆化搜索的方式处理
- springCloud
8.06
- 区间dp问题 最长回文子序列
- 状态机dp 股票买卖问题
- 树形dp 二叉树的直径
- 布隆过滤器原理
- 登陆场景下使用redission 分布式锁
- 登陆场景下 token 验证
- 防止检查用户名缓存穿透,使用bloomfilter
- 分组管理 部分接口管理
8.07
- 项目接口测试
8.08
- 短网址原理/创建/如何支持高并发/ 为什么使用布隆过滤器/使用goto路由表映射
- 短网址跳转原理(区分状态码301 还是 302 )/分布式锁解决缓存击穿问题/双重判定锁/使用lock 还是trylock 使用场景 以及区别
- 缓存穿透处理思路
- 缓存预热问题
- MySQL存储引擎InnoDB与MySIAM对比
- leetcode 902
8.09
- 缓存穿透代码实现梳理
- 短网址的回收站的删除以及分页功能
- 入手ElasticSearch 以及RocketMQ 只是初步了解
今天状态差 周五休息了
8.10
-
缓存击穿问题处理的综合方案: 缓存空对象 + BloomFilter + 分布式锁
先查询redis缓存 -> 为空查询bf -> bf 不为空的话 -> 判断缓存空对象 不为空的话查询-> 获取分布式锁 查询mysql 并且写缓存, 详细逻辑 复习 自己的流程图, 并且复习自己流程图
-
监控服务 整理功能梳理
-
pv 计算
-
uv计算原理: 使用Cookies
-
获取各种监控信息 包括 IP地址 OS browser
-
高频访问IP实现的方式。 查询数据库 思路
-
Redis 八股文 Redis五种常见数据结构
-
RocketMQ 文档
今天效率 有待提高学习内容比较少, 八股文部分学的不多
8.11
-
redis八股 redis。中的数据结构 实现原理 基本操作以及应用场景
-
短网址跳转监控信息整合
8.12
- 理解短网址跳转时, 向MySQL数据库中写操作涉及到哪些字段,
t_link_access_logs
,t_link_access_stats
两个核心数据表 - debug 跳转功能,
shortLinkStats(buildLinkStatsRecordAndSetUser(fullShortUrl, request, response));
8.13
- redis-stream 消息队列, 理解producer-task, consumer-task 处理过程
- 主要是consumer-task, 核心操作:记录跳转状态, 并保存到mysql数据库中, 通过数据记录获取监控信息
- 消息队列的重复问题解决方案 : 幂等性原理
- leetcode 每日一题
8.14
- 风控问题如何处理 涉及到白名单问题
- 流量控制 降级熔断概念
- 如何实现降级熔断
- 引入 sentinel 控制接口QPS如何实现
- Jmeter 压测工具, 测试, 创建测试计划(创建线程组、HTTP请求、 结果树、聚合报告)
8.15
全新优惠卷项目设计到的技术栈(涉及到大量中间件)需要有基本初步了解与认知, 并且完成基本配置。
使用NGINX原因
- nginx的性能是高于 SpringCloud gateway, 使用NGINX是做基本的限流与风控
- 通过nginx完成负载均衡,gateway性能不如nginx
- nginx http代理
- 前端页面的访问
使用gateway原因
- 适配SpringCloud
- 支持这种过滤器
Nacos
- 服务配置与管理
SkyWalking
- 服务链路追踪
- 服务中的性能问题
Sentinel
- 限流和熔断处理 处理高并发
XXL-JOB
- 分布式定时任务框架
Redis功能
- 数据库缓存
- 分布式锁
- 布隆过滤器
MySQL ShardingSphere
- 实现MySQL数据库的读写分离以及分库分表
ElasticSearch
- 搜索引擎, 通过Canal监听binlog向ElasticSearch推送数据, 实现用户搜索场景
RocketMQ
- 削峰与任意延迟消息发送实现异步解耦
今日完成
-
参考官方 安装RcoketMQ, 启动NameServer 以及Proxy (完成新项目优惠卷启动与配置)
-
安装并配置ElasticSearch, 官方文档
-
配置并启动新项目 六个微服务 !
-
优惠卷项目业务场景问题: 优惠卷分发以及兑换
-
Redis持久化 RDB
-
RDB原理 实现异步持久化
-
AOF持久化 , RDB 与AOF对比
-
leetcode 经验参考
8.16
-
Redis 主从模式
-
主从同步的工作原理
-
全量同步、增量同步原理 以及使用场景
-
Redis哨兵
8.17
- Redis 集群
- 短网址项目
8.18
- 动态规划题目 背包问题 线性dp
- dp边界处理,如何通过添加1行 1列的处理边界问题
- MySQL 索引
- 项目debug
8.19
- Java 数据结构八股文 ArrayList LinkedList HashMap TreeSet
- Java Stream 使用方法 filter 过滤元素、 中间操作(sort distinct map)
- Redis持久化 RDB 复习
- MySQL架构 以及 SQL执行需要经过哪些层
- MySQL Storage engine
- 短网址中项目MyBatis 操作数据库部分,单个链接如何跳转统计数据
20 号 任务: MySQL 索引内容 和 锁部分内容 日志内容必须完成
leetcode动态规化
新项目必须加快 进度
java 基础八股
8.20 ~ 8.25
-
MySQL存储引擎
-
MySQL索引 ,
-
mysql全局锁 、表锁、 行锁。
-
InnoDB 引擎 内存结构
-
磁盘结构
-
InnoDB 事务 mvcc
-
MySQL日志
所有内容完成整理并记录笔记
8.26 - 8.28
短网址,项目整理