大家好,我是mikechen。
这是我写的架构技术文章,包含:Java、框架、数据库、中间件、分布式、架构..等系列。
为了方便大家的阅读,也为了让知识更系统化,这里我把整个系列一并罗列于此,希望有所帮助@mikechen
消息队列MQ是大型分布式系统不可缺少的中间件,也是高并发系统的基石中间件,所以掌握好消息队列MQ就变得极其重要了。
本篇会非常全面的详解消息队列MQ,主要会谈到:
- 消息队列MQ架构
- 消息队列MQ设计
- 消息队列MQ的模型
- 消息队列MQ产品选型
- 消息队列MQ的4大应用场景
单点登录在大型网站里使用得非常频繁,例如,阿里旗下有淘宝、天猫等网站,还有背后的成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。
单点登录本篇重点详解了:
- 单点登录的原理
- 单点登录的实现方式
- 同域下的单点登录
- 不同域下的单点登录
从单机到分布式集群,肯定会涉及到负载均衡,这是中大型网站的必经之路。
本篇重点讲解了负载均衡相关的:
- 负载均衡的原理机制
- 负载均衡均衡的算法
- 轮循
- 加权轮循
- 源地址散列等负载算法
这些算法肯定是要掌握的。
幂等性在支付场景、下订单,以及分布式系统都是最常遇到的问题。
这篇文章主要讲了以下几点:
- 幂等性的解决方案
- 数据库唯一主键
- 数据库乐观锁
- PRG 模式
- 防重 Token 令牌
如果你还对幂等性不了解,肯定是要重点学习掌握的。
JVM性能调优是大厂面试经常被问的内容,需要重点掌握好。
这篇文章主要讲了以下几点:
- JVM内存调优
- JVM性能调优具体方法
- JVM性能调优6大步骤
- JVM调优参数设置等
Redis雪崩、穿透…这块,也是属于必备内容了。
比如::
- 什么是缓存雪崩?
- 如何预防缓存雪崩?
- 什么是缓存穿透?
- 如何来应对穿透?
- 什么是缓存并发?
- 如何来应对并发?
MySQL属于Java面试的重灾区,而且大厂非常看重你对数据库的掌握情况。
比如:
- MySQL索引原理
- 索引的数据结构
- MySQL索引b+树详解
- MySQL慢查询优化详解
- MySQL慢查询优化步骤
- MySQL慢查询案例详解
这篇文章都会重点来详解。
除此之外,数据量大了也是需要重点考察的。
比如:
- 数据主从同步的由来
- 数据同步一致性解决方案
- 半同步复制
- 数据库中间件
- 缓存记录写key法
这篇文章都会重点来详解。
在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节,所以需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。
读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新,比如:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。
这篇文章就会详解以上缓存与数据库不一致的具体解决方案。
本篇主要介绍了以下几点:
- 高并发场景下MySQL和Redis数据不一致性
- 延时双删策略详解
- 异步更新缓存新详解
- 基于订阅binlog的同步机制详解
Raft 算法是解决分布式系统一致性问题的,比如:大家熟悉的很多中间件Etcd、Consul、Zookeeper、Tikv等,都会涉及到分布式场景的数据一致性问题。
共识算法有很多种,比如:paxos、raft、zab等,paxos以复杂和难以理解著称,通常来说raft是更容易理解的算法。
本篇重点详解:
- Raft 算法
- Raft 算法角色
- Raft 算法实现原理等
雪花算法,它最早是twitter内部使用的分布式环境下的唯一分布式ID生成算法。
现在很多大厂,基本都采用雪花算法来实现全局唯一ID,而且面试也经常被问到。
本篇重点详解:
- 雪花算法的原理
- 雪花算法的结构
- 雪花算法的实现
- 雪花算法的代码
为了提升性能,肯定会从全局以及局部优化,这就会涉及到架构以及数据库以及前后端的优化。
这篇文章会重点讲解以下几点性能优化:
1.代码优化
2.数据库优化
3.架构层面优化
4.分布式缓存优化
5.异步化优化
6.Web前段优化
6.服务化
7.硬件升级
8.搜索引擎
9.产品逻辑优化
Dubbo是分布式RPC通信框架的杰出代表,国内经常考察。
比如:
RPC框架的核心设计?
Dubbo的底层实现?
如何来实现一个RPC?
RPC核心组件有哪些?
本篇都会重点来详解。
微服务Dubbo和SpringCloud架构设计、优劣势比较
谈到了微服务框架,就不得不谈到Dubbo和SpringCloud。
本篇会重点谈到:
- 架构的比较
- 协议的比较
- 实现的比较
- 性能的的比较等
Kafka的性能快,这是大厂Java面试经常问的一个话题。
这里会涉及到:
- 页缓存技术
- 磁盘顺序写
- 零拷贝
- 分区分段+索引等技术
这篇都会重点来详解。
目前几乎很多大型网站及应用都是分布式部署的,经常会考察到分布式锁。
这里就会涉及到3种锁的实现:
- Redis分布式锁
- 数据库分布式锁
- Zookeeper分布式锁
这篇都会讲解到具体的实现方式与优劣势比较。
消息中间件在互联网领域是基石,其中重点要学习的是RocketMQ。
本篇会重点详解RocketMQ相关的:
- RocketMQ的核心组件
- RocketMQ的架构设计
- RocketMQ的关进特性
- RocketMQ的应用场景
大型网站淘宝都是如何从小一步步演变到分布式架构,这里会涉及到分布式服务拆分等关键点。
这篇文章主要讲了以下几点:
- 为什么需要应用拆分
- 如何拆分需求
- 如何拆分原则
- 分布式拆分实战
- 分布式架构拆分总结
如果还想更加全面的了解分布式系统,肯定会涉及到整个技术网站的架构演变。
比如:淘宝为代表的大型网站是怎样一步步最终演变过来的。
最后再到10.0,这里会经历如下的步骤:
1.初始阶段的网站架构
2.应用服务和数据服务分离
3.使用缓存改善网站性能
4.数据库读写分离
5.使用反向代理加速网站响应
7.使用分布式文件系统
8.分布式数据库系统
10.分布式服务化拆分
这个完整的过程,大型网站演变全过程与架构设计详解,本篇都会重点详解。
从公众号过来的,谢谢大佬分享干货,期望多多更新。
最近有一大波干货正在排队中…
在您的网站上学到很多让我醍醐灌顶的知识?
陈睿老师,太用心了,感谢陈睿老师提供了这么好的资源
学习了,内容质量都很高,学到了很多东西,感谢
突然发现这么多文章都几乎是一个人写的,值得仔细阅读实践