阿里资深架构师整理分享的分布式系统架构:技术栈详解与进阶文档

资深分布式系统研发工程师、架构师多年工作经验总结,从原理、应用和实践3个维度展开从前端到后端,从网络传输到负载均衡,从事务到数据库,从高并发到高可用,8个维度全面讲解分布式系统的技术栈。

本文从技术原理、高并发、性能优化的角度出发,对分布式环境中因应用场景复杂多变产生的问题,从多种技术层面进行分析,并给出高性能的优化方案和高可用的架构方案。文中融入了对分布式领域中多种主流技术栈的介绍,能让读者全方位了解关于分布式系统架构的知识。

限于文章篇幅原因,只能以截图的形式展示出来,有需要的小伙伴可以文末获取↓↓↓

目录概览

内容概览

本文根据分布式环境交互的顺序来构造和安排内容,建议按照目录的顺序依次阅读。全文一共10章,具体如下。

第1章分布式架构介绍

分布式架构是分布式计算技术的应用,目前比较成熟的技术包括J2EE、CORBA和.NET(DCOM)。本文重点讲述J2EE。J2EE是由Sun公司推出的一项中间件技术,旨在简化和规范多层分布式企业应用系统的开发和部署,可以为分布式应用软件提供在各种技术间共享资源的平台。J2EE标准的实施可显著地提高系统的可移植性、安全性、可伸缩性、负载平衡、可重用性。它主要有以下特点。

具有分布式的体系结构。J2EE组件的分布与服务器环境无关,所有的资源都可通过分布式目录访问,开发人员不需要为组件和资源分布问题耗费精力。

采用多层分布式应用模型。J2EE将应用开发划分为多个不同的层,并在每一个层上定义组件。各个应用根据它们所在的层,分布在相同或不同的服务器上,共同组成基于组件的多层分布式系统,包括客户层、表示逻辑层、商业逻辑层、企业信息系统层。

拥有应用服务器的标准。J2EE是首个获得业界广泛认可和采纳的中间件标准。

随着移动互联网不断发展,计算机系统已从单机状态过渡到多机协作状态,计算机以集群的方式存在,按照分布式理论的指导构建出庞大复杂的应用服务。

第2章分布式架构前后端交互

从传统的交互发展到目前较流行的前后端交互的过程中,分布式架构下的前后端交互变得更高效和全面,太多技术层面进行了迭代和更新。

第3章分布式架构网络传输

分布式架构网络是由分布在不同地点且具有多个终端的节点机互连形成的。网络中任意一节点均至少与两条线路与其他节点相连,当任意一条线路发生故障时,通信可转经其他线路完成,从而使网络具有较高的可靠性和可扩充性。网络传输是基于可靠的线路和网络传输协议来实现的。

第4章分布式架构Nginx

Nginx是一个高性能的HTTP和反向代理Web服务器。Nginx可以作为一个HTTP服务器进行网站的发布处理,也可以作为反向代理进行负载均衡的实现,由于其占用内存少,并发能力强,所以可以广泛应用在互联网中。

第5章分布式架构Varnish

Varnish是一款高性能且开源的反向代理服务器和HTTP加速器,主要通过缓存来实现Web访问加速。它基于内存进行缓存,支持精确缓存时效,性能高效。其VCL配置管理比较灵活,支持后端服务器负载和健康检查,内部实现了负载均衡轮询调用服务器。

第6章分布式架构Tomcat

Tomcat是一个免费的开放源代码的Web应用服务器,主要应用于中小型系统,内部具有Servlet和JSP规范,且较轻量级,深受广大开发者喜爱和使用,目前较流行。实际上Tomcat部分应用是Apache服务器的扩展,作为一个与Apache独立的进程单独运行。

第7章分布式架构高并发

大量请求可能同时或者在极短时间内到达服务端,此时每个请求都需要服务端耗费资源进行处理并做出相应反馈。能同时运行的线程数、网络连接数、CPU运算、I/O、内存是有限的,所以服务端能同时处理的请求数也是有限的,高并发本质就是解决资源的有限性问题。

假设系统在线人数是20万,并不意味系统并发用户是20万,可能存在10万用户同时在首页查看静态文章,并未对服务器发送请求,所以高并发数是根据系统真实的用户数发送请求,并需要服务端消耗资源进行处理。如服务端只能开启100个线程,恰好1个线程处理1个请求需要耗时1s,那么服务端1s内只能处理100个请求,多余请求则无法处理。

高并发涉及相关常用的指标有吞吐量(TPS)、每秒查询率(QPS)、响应时间、并发用户数等。

  1. TPS(QPS):单位时间内处理的请求数量,计算公式为并发数/平均响应时间。
  2. 响应时间:系统对请求做出响应的时间,一般取平均响应时间。
  3. 并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时聊天系统,同时在线量一定程度上代表了系统的并发用户数。

第8章分布式架构事务

主要介绍普通事务与分布式事务的差异性,以及对分布式事务的多种处理方式,本章会通过多个案例并结合代码进行分析。

主动方应用可以异步发送消息至被动方应用,提高应用处理效率,消息中间件可以解耦主动方和被动方的强耦合性,同时引入消息中间件MQ。由于MQ有着独特的高并发、高吞吐能力,能够缓冲消息、灵活调节控制消息处理的效率,大大提高了双方系统的并发量。

第9章分布式架构MySQL

MySQL是一种关系数据库,由瑞典MySQL AB公司开发,目前属于Oracle。MySQL在之前因开源的原因在Web应用方面使用非常广泛,同时也因为体积小、速度快、使用成本低,尤其是开放源码这一特点,深受大中小型企业的喜爱,MySQL采用标准化的SQL语言帮助用户更好地管理数据库系统。

第10章分布式架构高可用

高可用是指系统经过专门的设计,可以减少停工时间,保持其服务的高度可用性。可用性包含两个维度:计算机服务可用性平均时间和计算机服务可维护性平均时间。计算机服务可用性平均时间指系统平均能够正常运行多长时间会发生一次故障,系统的可用性越高,平均无故障时间越长。计算机服务可维护性平均时间指系统发生故障后处理和重新恢复正常运行平均花费的时间,系统的可维护性越好,平均维修时间越短。因此,计算机的可用性定义为系统保持正常运行时间的占比,可见,高可用是系统的重要目标。

限于文章篇幅原因,就展示到这里了,有需要的小伙伴可以查看下方名片↓↓↓ 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值