结合淘宝与Twitter详解分布式系统与其架构设计,分布式其实并不难,阿里架构师用实战给讲明白了!

news2025/1/10 17:18:18

什么是分布式架构

分布式系统(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为代表的国内外知名互联网企业的大型分布式系统案例,分析其架构设计以及演变过程。

总目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手把手教你如何从0到1开发自动化测试框架,你确定不看?

目录 一、序言 二、自动化测试框架技术选型 三、自动化测试框架的设计思路 四、自动化框架介绍 五、框架技术要点解析 六、后续TODO 一、序言 随着项目版本的快速迭代、APP测试有以下几个特点: 首先,功能点多且细,测试工作量大&#x…

Redis基本通用命令

通用命令 查看使用文档,例如要查看select怎么使用 help select切换数据库 select 1查看符合模板的所有key keys * keys *a keys a*判断key是否存在 exists k1给key设置有效期,给k1设置20秒有效期 expire k1 20查看key剩余有效期,查看k1…

2014年408算法题

文章目录0 结果1 题目2 思路0 结果 1 题目 2 思路 二叉树的带权路径长度(WPL)的计算方法有两种: 1,定义:WPL所有叶结点的权值Wi∗该结点深度Di求和WPL所有叶结点的权值W_i*该结点深度D_i求和WPL所有叶结点的权值Wi​…

linux环境minio安装启动,管理员登录,nginx代理

一.下载minio 官网下载: MinIO | Code and downloads to create high performance object storage 直接点击下载或者用wget https://dl.min.io/server/minio/release/linux-amd64/minio 最后都是得到一个文件minio(大概100M) 二.启动minio 1.创建文件夹,比如 mkdir /data…

mysql的redolog、undolog、binlog介绍,及mysql两阶段提交

https://blog.csdn.net/weixin_45676738/article/details/124770085 https://blog.csdn.net/TABE_/article/details/124935324 三种log REDO LOG 称为 重做日志 ,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。 UNDO LOG 称…

电源管理系统的功能和发展前景分析

电源对于电子设备的重要性不言而喻,电源管理系统是将电源有效分配给系统中的不同组成,在电子设备中起到了电能变换、控制、检测等作用,保证系统的稳定运行,对设备的性能有着直接影响,广泛用在工业、新能源、机器设备、…

一、初识 Spring 框架

文章目录一、Spring 简介二、Spring 框架的优点三、Spring 框架的组成四、Spring 框架 学习路线一、Spring 简介 Spring 框架简介 2004年3月24日发布了Spring 1.0正式版,Spring 框架的诞生给整个软件行业带来了春天。这个框架极大程度上简化了开发,其本…

基于无人机和背负式激光雷达点云的黄河三角洲刺槐林地上生物量估算

论文标题:Estimation of aboveground biomass of Robinia pseudoacacia forest in the Yellow River Delta based on UAV and Backpack LiDAR point clouds ABSTRACT 人工林是陆地碳汇的重要来源。黄河三角洲刺槐林是我国最大的人工生态防护林。然而,自…

“深度学习”学习日记。与学习有关的技巧--超参数的验证

2023.1.31 超参数是指神经网络中,神经元的数量、batch的大小、参数更新时的学习率或权值衰减等,虽然超参数的取值非常重要,但是决定超参数的值时会伴随很多人工的试错,所以我们需要高效地寻找超参数的值的方法 一,验…

【4】【Spring】,【Ioc/DI】,【IoC容器】,【Bean】

1、Ioc/DI,IoC容器,Bean 为了解决不同实现方式耦合度高 Ioc:(Inversion of Control)控制反转 主要思想:使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移…

vite打包静态文件打开显示空白

vite 打包生成静态文件打开显示空白 需求场景 本地调试访问打包的文件看是否有啥问题,方便定位线上问题安卓手机需要去直接访问静态文件,而不是访问域名的情况 vite 打包生成的文件如果直接放在服务器中是可以正常访问的,但是本地直接访问…

三个方面使CRM在360度客户视图中受益

360度客户视图这个词相信您不会陌生,很多关于CRM客户管理系统的文章中都有所提及。所谓的360度客户视图,是帮助企业和业务人员建立客户认知,消除客户生命周期中的信息脱节,让业务人员为客户提供一致性的体验。接下来我们们说&…

Windows10神州网信版的安装

在大约20天里面我完成了Windows10神州网信版72台的安装,有些2009~2014年的计算机完成安装后做一般的办公应用也能流畅运行。买一台新的计算机至少要好几千,通过更换固态硬盘和内存条可以达到旧物新用的目的。 一、安装过程   1、检查硬件  …

Coggle 30 Days of ML(23年1月)打卡

前言 任务链接 这个任务内容比较感兴趣而且和工作内容相关,学习一下打个卡。 编码完成任务1,2,3,5,6,目前手上只有2080,之后在3090上跑。 最近杂事多,笔记、任务4和7之后再补充。 …

vue前端框架课程笔记(五)

目录非文件组件使用步骤定义组件示例(第一部分):使用Vue.extend函数创建三个组件注册组件示例(第二部分):组件的全局和局部注册组件使用示例(第三部分):编写组件标签最终…

软件工程(三)——需求工程、需求开发、需求定义

目录 一、需求定义 二、需求验证 三、需求管理 1.定义需求基线 2.需求跟踪 3.变更控制 四、软件系统建模 一、需求定义 把已经分析好的需求,落成文档,把东西记录下来,成为《需求规格说明书》。需求定义的方法有严格定义法 以及 原型法…

Java三路快速排序

概念 三路快速排序: 是双路快速排序的进一步改进版本,三路排序算法把排序的数据分为三部分,分别为小于 v,等于 v,大于 v,v 为标定值,这样三部分的数据中,等于 v 的数据在下次递归中…

QSplitter学习笔记

QSplitter是分割窗口控件,并且可以拖动窗口来改变窗口的大小,是主界面显示时经常用到,本篇介绍它的交互操作。QSplitter可以容纳多个Widget,具有布局的特点,并且可以动态调整各个Widget的大小。QSplitter布局有两种方式…

前端学习第五站——CSS学习进阶篇

目录 一、选择器进阶 1. 后代选择器(空格) 2. 子代选择器 > 3. 并集选择器:, 4. 交集选择器:紧挨着 5. hover伪类选择器 6. emmet语法 7. 选择器总结 二、背景相关属性 1. 背景颜色 2. 背景图片 3. 背景…

若依框架对接LDAP

这里直接使用spring ldap实现认证。 背景在若依框架上对接LDAP 代码 引入依赖 <!-- 对接ldap --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-ldap</artifactId></dependency>…