前言
一、分布式架构学习路线图
据统计,人的阅读时间在20分钟以内是能够达到全身心投入的,顾文章单张篇幅以后会尽量缩短,但更新会尽量相应频繁一些。
时至今日,互联 的形式演变已经变成全员参与,老少皆宜的活动。因此,互联 相关的技术也是要求越来越高,参与人数的增加也让系统的负担越来越大。
三、技术架构演进史
以下为2017年天猫双11的交易指标。那么大的数据量,那么快的处理请求,显然单台机器,单个服务绝对是无法支撑的。
**架构演进二: **数据库开发(LAMP特长)
特征:应用程序主要主要读取数据表值,填充html模块。业务逻辑简单,写sql
架构演进四: javaweb的集群发展
特征:硬件机器的横向复制,对整个项目结构无影响。
架构演进六: javaweb的微服务发展
特征:从业务角度,细分业务为微服务,每一个微服务是一个完整的服务(从http请求到返回)。在微服务内部,将需要对外提供的接口,包装成rpc接口,对外部开放。
说明:以下全部所说的架构师必备技能之高性能架构学习路线及相关笔记:中间件、Nginx、缓存、ZK等等等,篇幅有限,很多都是截图展示,但是图片都是很高清的,可以清晰的看见其中的内容。
一、Zookeeper分布式环境指挥官
- ZK 手写笔记(1):概述+CPA+环境搭配+一致性协议+基本使用
二、Nginx高并发分流进阶实战
- Nginx 常见应用技术指南[Nginx Tips]
-
(1)Broker:消息中间件实例, 可能是单个节点也可能是运行在多节点集群上的逻辑实体
-
(2)消息(Message):消息由消息头和消息体两部分组成。消息头中包括routing-key、priority等标准消息头以及其它自定义消息头,用于定义RabbitMQ对消息行为。消息体是字节流,包含消息内容。
-
(3)连接(Connection):客户端与 Broker 之间的 TCP连接
-
(4)信道(Channel) :Channel 是建立在 TCP 连接上的逻辑(虚拟)连接。多个 Channel 复用同一个 TCP 连接, 以避免建立 TCP 连接的巨大开销。 RabbitMQ 官方要求每个线程使用独立的 Channel, 禁止多个线程共用 Channel。
-
(5)生产者(Publisher):发送消息的客户端线程
-
(6)消费者(Consumer):处理消息的客户端线程
-
(7)交换机(Exchange):交换机负责将消息投递到相应的队列
-
(8)队列(Queue):接收并保存交换机投递的消息,直至被消费者成功消费。逻辑结构遵循先进先出FIFO。
-
(9)绑定(Binding):将队列(Queue)注册到交换机(Exchange)的路由表
-
(10)虚拟主机(Vhost):每个Broker下可建立多个vhost, 每个 vhost 可建立独立的 Exchange、Queue、绑定及权限系统。同一个 Broker 下的 vhost 共享 Connection、Channel 和 用户系统,就是说可以使用同一个用户身份使用同一个 Channel 访问不同 vhost。
3.1 rabbitMQ消息中间件相关笔记
- RabbitMQ实战指南
-
(1)多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
-
(2)完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
-
(3) 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性
-
(4) 通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
-
(5) 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
-
(6)支持通过JDBC和journal提供高速的消息持久化
-
(7)从设计上保证了高性能的集群,客户端-服务器,点对点
-
(8) 支持Ajax
-
(9)支持与Axis的整合
-
(10)可以很容易的调用内嵌JMS provider,进行测试
五、Kafka百万级吞吐实战
- 手写“Kafka笔记”
六、Redis高性能缓存数据库
- Redis高性能缓存
本PDF分为三大部分,即分布式系统基础理论、分布式系统常用技术以及经典的分布式系统案例分析。
-
第一部分主要介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题,其中包括线程、通信、一致性、容错性、CAP理论、安全性和并发等相关内容;同时讲述分布式系统的常见架构体系,其中也包括最近比较火的RESTful风格架构、微服务、容器技术等
-
第二部分主要列举了在分布式系统应用中经常用到的一些主流技术,并介绍这些技术的作用和用法;这些技术涵盖了分布式消息服务、分布式计算、分布式存储、分布式监控系统、分布式版本控制、RESTful、微服务、容器等领域的内容。
-
第三部分选取了以淘宝 和Twitter为代表的国内外知名互联 企业的大型分布式系统案例,分析其架构设计以及演变过程;这部分相当于是对第二部分零散的技术点做一个“串烧”,让读者可以结合技术的理论,看到实战的效果。
读者福利
分享一份自己整理好的Java面试手册,还有一些面试题pdf
领取方式;关注+点赞后,戳这里即可免费领取
不要停下自己学习的脚步
第三部分选取了以淘宝 和Twitter为代表的国内外知名互联 企业的大型分布式系统案例,分析其架构设计以及演变过程;这部分相当于是对第二部分零散的技术点做一个“串烧”,让读者可以结合技术的理论,看到实战的效果。
读者福利
分享一份自己整理好的Java面试手册,还有一些面试题pdf
领取方式;关注+点赞后,戳这里即可免费领取
不要停下自己学习的脚步
[外链图片转存中…(img-qhivg4Xt-1624461284279)]
[外链图片转存中…(img-q6swvGad-1624461284280)]
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92435 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!