一、google guava
loca cache 的实现原理
算法FIFO vs LIFO
二、redis
如何实现分布式锁
client 执行命令在redis服务器是单线程执行的,天然的保持有序,拥有锁的特性
为啥单线程也能拥有高性能
数据直接存储在内存中,内存读写效率只比cpu高速缓存差一点,读写效率如此高,足以轻松处理client请求,没必要多线程执行了,况且多线程还会增加线程上下文切换的开销,反而降低redis的性能
三、锁
CAS(control and set)自旋锁
悲观锁
select for update/ update commit
乐观锁
update xxx where version=xxx;
排它锁 vs 共享锁
索引
- b+ tree 算法图解
事务 vs 事务隔离级别4种
transction 事务 手动 vs 自动 提交
四、HashMap vs LinkedList
内部算法实现剖析
hash table vs 链表
五、MQ原理解析
理解算法 生产者消费者模型
kafka 消息中间件
六、ApiGateway
- 微服务场景下,需要有一个事物来做协议转换(http协议转化为微服务间的通通信协议)
- 网关验签 utk dtk
- 接口请求 权限验证
七、deploy项目
kubernate && docker && git && jenkins && java开启进程 && grovvy管理配置
多项目依赖发布解决方案
八、电商系统之订单系统-order\trade
购物车:加入购物车,查看购物车,修改数量,规则,删除,购物车下单
渲染订单
提交订单
订单列表-详情
九、电商系统之售后系统-rma(Return Materiel Authorization)
电商产品退货退款的那些事
换休退货
状态机的应用
十、电商系统之营销系统-am(activityManager)
限时特惠
营销三宝
闪购
拼团
众筹
集赞
预售
万人团 超级团
十一、日志采集系统
页面定位信息预埋
spm
渠道追踪信息预埋
utm
用户行为日志
- 移动端上报(yd.gif)
- ruby service 处理请求投递到 kafka mq
- spark streaming 消费kafka消息,行为日志落到 odps partition table
api接口访问日志
1.网关请求access log解析投递到 kafka mq
2.log 落到 odps partition table
十二、数据分析
源头
业务数据 && 日志(用户行为 + 接口访问)
离线分析:dataworks
- odps(hadoop) sql 做分析
- quickbi
- kylin
实时报表
- canal 实时报表
- adbpg:GreemPlum postgresql (准实时报表)