其他分享
首页 > 其他分享> > 字节大神强推千页PDF学习笔记,面试题+笔记+项目实战

字节大神强推千页PDF学习笔记,面试题+笔记+项目实战

作者:互联网

一、分布式架构学习路线图

据统计,人的阅读时间在20分钟以内是能够达到全身心投入的,顾文章单张篇幅以后会尽量缩短,但更新会尽量相应频繁一些。

image

二、计算机软件发展历史

首先我们了解下计算机软件的发展历史,大概总结概括,分为c/s时代,web1.0时代和web2.0时代。

c/s时代:富客户端方案。卖软件可赚钱。例如 qq、影音、游戏。

1.0时代:主要是单向信息的发布,即信息门户---广大浏览器客户端 ,互联网内容是由少数编辑人员(或站长)定制的。

表是三大门户,新浪/网易/搜狐。新浪以新闻+广告为主,网易拓展游戏为主,搜狐延伸门户矩阵

2.0时代:注重用户的交互。每个人都是内容的供稿者。?RSS订阅扮演一个很重要的作用。

例如:博客、播客、维基、P2P下载、社区、分享服务

image

时至今日,互联网的形式演变已经变成全员参与,老少皆宜的活动。因此,互联网相关的技术也是要求越来越高,参与人数的增加也让系统的负担越来越大。

三、技术架构演进史

以下为2017年天猫双11的交易指标。那么大的数据量,那么快的处理请求,显然单台机器,单个服务绝对是无法支撑的。

image

那么怎么办呢,我们将原本单台部署,单台处理的服务,需要进行拆分以及部署到不同的服务器中去,使其用多台机器去处理,分担压力。但是我们又要保证系统的完整性。这就是分布式的设计。接下来我们看下服务架构的演进史。

架构演进一:?早期雏形

特征:应用程序主要做静态文件读取,返回内容给浏览器。

image

架构演进二:?数据库开发(LAMP特长)

特征:应用程序主要主要读取数据表值,填充html模块。业务逻辑简单,写sql

image

架构演进三:? javaweb的雏形

特征:tomcat + servlet + jsp + mysql。一个war包打天下

项目结构:ssh/ssm三层结构。

image

架构演进四:? javaweb的集群发展

特征:硬件机器的横向复制,对整个项目结构无影响。

image

架构演进五:? javaweb的分布式发展

特征:将Service层单独分离出去,成为一个单独的项目jar。单独运行。Web服务器通过rpc框架,对分离出去的service进行调用。

image

架构演进六:? javaweb的微服务发展

特征:从业务角度,细分业务为微服务,每一个微服务是一个完整的服务(从http请求到返回)。在微服务内部,将需要对外提供的接口,包装成rpc接口,对外部开放。

image

集群与分布式的区别

我在面试的时候,发现很多同学会把集群和分布式混淆,其实他俩完全是两个东西

分布式:纵向拆分,一个业务分拆多个子业务,部署在不同的服务器上。主要是业务层面拆分,进行业务解耦,从而提高服务高可用以及高性能。
集群:横向复制,同一个业务,部署在多个服务器上,前面通过负载均衡,起到分担压力的作用。而且这些服务器中,即使有一两个宕机也不会影响到整体业务。

image

image

本章主要讲了一下高性能架构的学习路线,以及技术演进史。接下来聊聊Alibaba百万年薪架构师必备技能——高性能架构学习路线(笔记):中间件、Nginx、缓存、ZK等等...看下方高性能架构进阶技能图...

image

说明:以下全部所说的架构师必备技能之高性能架构学习路线及相关笔记:中间件、Nginx、缓存、ZK等等等,篇幅有限,很多都是截图展示,但是图片都是很高清的,可以清晰的看见其中的内容。

一、Zookeeper分布式环境指挥官

image.png

1.1 zookeeper基础

ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。

1.2 分布式应用的优点

1.3 分布式应用的挑战

1.4 Zookeeper相关笔记

image.png

image

image

二、Nginx高并发分流进阶实战

image

2.1 nginx如何实现高并发

2.2 进程模型

2.3 事件模型

nginx是异步非阻塞的。

每进来一个request,会有一个worker进程去处理。但不是全程的处理,处理到什么程度呢?处理到可能发生阻塞的地方,比如向上游(后端)服务器转发request,并等待请求返回。那么,这个处理的worker不会这么傻等着,他会在发送完请求后,注册一个事件:“如果upstream返回了,告诉我一声,我再接着干”。于是他就休息去了。此时,如果再有request 进来,他就可以很快再按这种方式处理。而一旦上游服务器返回了,就会触发这个事件,worker才会来接手,这个request才会接着往下走。

web server的工作性质决定了每个request的大部份生命都是在网络传输中,实际上花费在server机器上的时间片不多。这是几个进程就解决高并发的秘密所在。

2.4 Nginx相关笔记

image.png

image

image

image

三、rabbitMQ消息中间件

image.png

3.1 rabbitMQ消息中间件相关笔记

image.png

image

image

四、ActiveMQ消息中间件

image

五、Kafka百万级吞吐实战

image

kafka 最初是 LinkedIn 的一个内部基础设施系统。最初开发的起因是,LinkedIn 虽然有了数据库和其他系统可以用来存储数据,但是缺乏一个可以帮助处理持续数据流的组件。所以在设计理念上,开发者不想只是开发一个能够存储数据的系统,如关系数据库、Nosql 数据库、搜索引擎等等,更希望把数据看成一个持续变化和不断增长的流,并基于这样的想法构建出一个数据系统,一个数据架构。

Kafka外在表现很像消息系统,允许发布和订阅消息流,但是它和传统的消息系统有很大的差异,

Kafka 不仅仅是一个消息中间件,同时它是一个流平台,这个平台上可以发布和订阅数据流(Kafka 的流,有一个单独的包 Stream 的处理),并把它们保存起来,进行处理,这个是 Kafka 作者的设计理念。

5.1 Kafka百万级吞吐实战相关笔记

image.png

image

image

六、Redis高性能缓存数据库

image.png

6.1 Redis的数据结构和相关常用命令

6.2 Redis高性能缓存数据库相关笔记

image.png

image

image

image

image

image

六、分布式系统常用技术及案例分析(PDF)

image

本PDF分为三大部分,即分布式系统基础理论、分布式系统常用技术以及经典的分布式系统案例分析。

最后

以上分享的全部分布式技术专题+面试解析+相关的手写和学习的笔记pdf,高清完整版戳这里免费领取

还有更多Java笔记分享如下:

image

标签:面试题,架构,Redis,笔记,Kafka,key,分布式系统,强推,分布式
来源: https://www.cnblogs.com/dhsfdhfhgufdu/p/15066591.html