一个月学透阿里整理的分布式架构笔记

现在很多公司的招聘信息,都会有这这么一条要求:有分布式、高并发、高负载、高可用系统设计、开发和调优经验者优先。

写这个岗位描述的 HR,恨不得把自己知道的所有看上去高大上的词全都堆砌上,恨不得让别人一看就会认为这是一家巨牛 X 的公司。

其实,高并发并不神秘,说白了就是想办法搞定两个指标:提升 QPS、降低 RT。并且同时保证数据的正确性、系统的可用性就 OK 了。

  1. 网站并发量上来了?啥都不要管,先扩容,堆机器。机器多了自然需要集群技术、负载均衡了。(提升 QPS)

  2. 机器多了也扛不住了?服务拆分,把集中式部署改成分布式部署。(提升 QPS)

  3. 分布式了还是扛不住?先做降级,再做限流。(保证系统可用性)

  4. 数据库扛不住了?上分布式缓存。(降低 RT)

  5. 缓存上了之后,数据还是扛不住?那就考虑读写分离、分库分表、数据库容灾。

  6. 系统间同步交互有延迟?解耦,上异步方案,采用消息中间件。(降低 RT)

  7. 高并发导致了脏数据?上分布式锁。(保证数据正确性)

  8. 高并发导致了数据不一致?上分布式事务。(保证数据正确性)

架构从来都不是设计出来的,是演进出来的。不要不设计,也不要过度设计。系统流量上来了,先直接扩容而不是上来就搞很复杂的架构。

就算是再牛 X 的架构,使用了再先进的技术,阿里巴巴也不能靠几十台机器就抗的住双十一!

当然,具体的高并发实操肯定不止这么简单,如果想要学习高并发或者 Java 的多线程、分布式等技术

分布式技术必备的学习文档

本文档分为 8 个版块,从基本的分布式理论开始,然后逐个击破,掌握分布式的各个核心的技术领域。由于篇幅的原因,下文只展示了每个版块的目录部分。

第一版块:分布式的基础篇

主要内容有: 线程、通信、一致性、容错性、CAP 理论、安全性、并发。

一个月学透阿里整理的分布式架构笔记_第1张图片

第二个版块:分布式的架构体系

主要内容有: 基于对象的体系结构、面向服务的架构(SQA)、REST 风格的架构、微服务架构(MSA)、容器技术、Serverless 架构。

一个月学透阿里整理的分布式架构笔记_第2张图片

第三个版块:分布式消息服务

主要内容有: ApacheActiveMQ、RabbitMQ、RocketMQ、Apache kafka。

一个月学透阿里整理的分布式架构笔记_第3张图片

第四个版块:分布式计算

主要内容有: MapReduce、ApacheHadoop、Apache Spark、Apache Mesos。

一个月学透阿里整理的分布式架构笔记_第4张图片

第五个版块:分布式存储

主要内容有:Bigtable、Apache HBase、Apache Cassandra 、Memcached、Redis、MongoDB。

一个月学透阿里整理的分布式架构笔记_第5张图片

第六个版块:分布式监控

主要内容有:Nagios、Zabbix、Consul、ZooKeeper。

一个月学透阿里整理的分布式架构笔记_第6张图片

第七个版块:分布式版本控制系统

主要内容有:Bazaar、Mercurial、Git。

一个月学透阿里整理的分布式架构笔记_第7张图片

第八个版块:RESTful API、微服务及容器技术

主要内容有:Jersey、Spring Boot、Docker。

一个月学透阿里整理的分布式架构笔记_第8张图片

第九个版块:分布式事务解决方案

主要内容有: 分布式事务基础理论、分布式事务解决方案之 2PC(两阶段提交)、分布式事务解决方案之 TCC、分布式事务解决方案之可靠消息最终一致性、分布式事务解决方案之最大努力通知

一个月学透阿里整理的分布式架构笔记_第9张图片

分布式架构面试高频必考知识点

看完上面的内容,相信大家已经有了清晰的目标与方向,接下来就是梳理出在面试中经常会出现的必考考点了,以及高频面试解析,由于字数原因,不能完全的展示出来

主要内容包括有:

一个月学透阿里整理的分布式架构笔记_第10张图片

消息队列

一个月学透阿里整理的分布式架构笔记_第11张图片

Redis 缓存

一个月学透阿里整理的分布式架构笔记_第12张图片

分库分表、读写分离

一个月学透阿里整理的分布式架构笔记_第13张图片

分布式事务

一个月学透阿里整理的分布式架构笔记_第14张图片

高可用架构

一个月学透阿里整理的分布式架构笔记_第15张图片

SpringCloud 微服务架构

一个月学透阿里整理的分布式架构笔记_第16张图片

最后

如果在阅读过程中有疑问,请留言讨论,最后祝愿各位顺利拿到心仪的offer.
 

你可能感兴趣的:(后端,java,面试,分布式,架构,java,sql,面试)