什么是分布式架构
分布式系统(distributed system) 是建立在网络之上的软件系统。
内聚性:是指每一个数据库分布节点高度自治,有本地的数据库管理系统。
透明性:是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。
在分布式数据系统中,用户感觉不数据是分布的,即用户不须知道关系是否分割,有无副本,数据存在于那个站点以及事物在哪个站点上执行。
简单来说:在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。
假设原来我们有一个系统,有100万行代码。现在拆分成20个小系统,每个小系统仅剩5万行代码。
原本代码之间都是直接基于Spring框架走JVM内存调用,现在拆分后,将20个小系统部署在不同的机器上,然后基于分布式服务框架(比如dubbo)搞一个rpc调用,接口与接口之间通过网络通信进行请求和响应。
所以分布式系统之间最重要的特点就是服务间要跨网络进行调用。这里给大家分享一份详细介绍分布式的文档,共分为三大部分,即分布式系统基础理论、分布式系统常用技术以及经典的分布式系统案例分析。
第一部分主要介绍分 布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题,其中包括线程、通信、一致性、 容错性、CAP理论、安全性和并发等相关内容;同时讲述分布式系统的常见架构体系,其中也包括最近比较火的RESTful风格架构、微服务、容器技术等。
第二部分主要列举了在分布式系统应用中经常用到的一些主流技术,并介绍这些技术的作用和用法;这些技术涵盖了分布式消息服务、分布式计算、分布式存储、分布式监控系统、分布式版本控制、RESTful、 微服务、容器等领域的内容。
第三部分选取了以淘宝网和Twitter为代表的国内外知名互联网企业的大型分布式系统案例,分析其架构设计以及演变过程;这部分相当于是对第=部分零散的技术点做-一个“ 串烧”,让读者可以结合技术的理论,看到实战的效果。
第一部分,主要介绍分布式系统基础理论知识
第1章介绍分布式系统基础理论知识,总结一-些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题,其中包括线程、通信、-致性、容错性、CAP理论、安全性合并发等相关内容。
第2章详细介绍分布式系统的架构体系,包括传统的基于对象的体系结构、SOA,也包括最近比较火的RESTful风格架构、微服务、容器技术、Serverless 架构等。
第二部分,主要列举了在分布式系统应用的主流技术
第3章介绍常用的分布式消息服务框架,包括Apache ActiveMQ、RabbitMQ、 RocketMQ、Apache Kafka等。
第4章介绍分布式计算理论和应用框架方面的内容,包括MapReduce、Apache Hadoop、Apache Spark、Apache Mesos等。
第5章介绍分布式存储理论和应用框架方面的内容,包括Bigtable、 Apache HBase、ApacheCassandra、Memcached、 Redis、 MongoDB 等。
第6章介绍分布式监控方面常用的技术,包括Nagios、Zabbix、 Consul、 ZooKeeper 等。
第7章介绍常用的分布式版本控制工具,包括Bazaar、Mercurial、 Git 等。
第8章介绍RESTful API、微服务及容器相关的技术,着重介绍Jersey、Spring Boot、Docker等技术的应用。
三部分,以淘宝网和Twitter为代表的大型分布式系统案例,分析其架构设计以及演变过程。
第9章和第10章分别介绍以淘宝网和Twitter为代表的国内外知名互联网企业的大型分布式系统案例,分析其架构设计以及演变过程。