前言

本篇是从程序员到首席架构师十多年职业生涯的实战经验总结,系统讲解构建大规模分布式系统的核心技术与实现方法,包含开源的Fourinone系统的设计与实现过程,手把手教你掌握分布式技术。

通过学习这个系统的实现方法与相关的理论,读者可快速掌握分布式系统的理论并设计自己的分布式系统。

本篇从分布式计算的基本概念开始,解剖了众多流行概念的本质,深入讲解分布式系统的基本原理与实现方式,包括masterslave结构、消息中枢模式、网状直接交互模式、并行结合串行模式等,以及Fourinone系统的架构、实现分布式功能的示例。接下来详细介绍分布式协调、分布式缓存、消息队列,分布式文件系统、分布式作业调度平台的设计与实现方法,不仅包括详细的架构原理、算法,还给出了实现步骤、核心API、实现代码。

在大数据、云计算如火如荼的今天,各类技术产品顺应潮流层出不穷。大家是不是有这种感觉: Hadoop还没学完,Storm 就来了; Storm刚学会安装配置, Spark、 Hama、Yarn 等又一起出现了;同时国内外各大云平台厂商,如Google、亚马逊、阿里云等,还在推各自应用开发平....要学习的东西太多了,就是这样疲于奔命地学,刚学会了某个产品的安装配置与开发步骤,没多久它又过时了。

这么多千姿百态的分布式技术和产品背后有没有某些共性的东西呢?能让我们]换了马甲还能认出它,让我们超越学习每个产品的“安装配置开发”而掌握背后的精髓呢?有没有可能学一反三,学一招应万招,牢牢掌握好技术的船舵,穿越一次次颠覆性的技术浪潮?
本篇的目的就是为你揭示分布式技术的核心内幕,透彻理解其精髓,站在浪潮之巅。

因此,这不是讲如何使用Hadoop,而是讲如何实现Hadoop的功能,讲如何简化实现分布式技术核心功能。这是来源于作者十多年来在私企、港企、外包、创业、淘宝、华为等企业打拼,从底层程序员一路走到首席架构师的实战经验总结。。

本篇面向千千万万战斗在一线攻城拔寨的程序员、工程师们,你可以有很多基础,也可以从头开始,本篇尽量做到深人浅出和通俗易懂,希望帮助你降低分布式技术的学习成本,帮助你更容易完成工作任务,更轻松地挣钱。

因为内容实在是太多了,所以小编只把部分知识点截图出来粗略的介绍了一下,每个小节都有更多细化的内容,希望大家能够学到知识。

本篇一共分为七个大章节,大家从头开始阅读就可以了。

第1章,概述

在概述分布式核心技术之前,我们有必要先概括阐述一-下分布式计算、并行计算、云计算等相关概念,以及市场上流行的相关技术产品,如Hadoop生态体系,然后再结合背景引出我们为什么要归纳出一个轻量级的分布式框架。本章为后续章节的背景。本章意在使读者对分布式技术话题的前因后果先有所了解。

由于只是概述,我们对涉及的分布式计算概念和Hadoop生态体系只是蜻蜓点水地带过,目的仅是让读者了解到这些内容大致是什么。

第2章,分布式并行计算的原理与实践

本章首先讲述分布式并行计算的各种设计模式和原理机制,并进一步说明Fourinone与市场上其他并行计算产品和技术的区别,最后手把手演示大量并行计算案例。

本章讲述的分布式并行计算思想、模式、技巧、实现,与编程语言无关,读者可以用多台计算机来尝试编程。

第3章,分布式协调的实现

分布式协调是分布式应用中不可缺少的,通常会设立专门的协调者角色,即将多机协调的职责从分布式应用中独立出来,以减少系统的耦合性和增强可扩展性。Apache的ZooKeeper、Google的Chubby都是分布式协调的实现者。Fourinone实际上可以单独当做ZooKeeper用,它使用最少的代码实现了ZooKeeper 的所有功能,并且力图做到功能更强、使用更简洁。

本章会从设计角度讲述分布式协调系统的实现原理,包括归纳出的API介绍,权限机制介绍,并详细阐述了在领导者选举机制上和Paxos算法的区别,最后再结合实践中的统一配置和集群管理等应用讲解demo,让读者有更直观的体会。

第4章,分布式缓存的实现

本章讲述小型缓存、大型分布式缓存的原理和实现机制,并且讲述经典的一致哈希算法原理,以及改进的基于日期key取模和分组算法去做集群负载均衡和扩容,最后讲述一个分布式Session的实现案例,以及相关的配置属性。

第5章,消息队列的实现

本章讲述了中间件和消息队列(MQ)的发展史JMS规范定义的发送/接收、主题订阅两种经典消息服务模式的机制原理,并详细举例说明如何在Fourinone中实现这两种经典模式。

第6章,分布式文件系统的实现

本章讲述如何使用FTTP去实现一个分布式文件系统,包括FTTP的架构原理和远程文件各种方式的访问和操作,以及整型数据处理等,包含了每一一步的具体操作,可帮助入门的读者快速上手。

在FTTP中通过FttpAdapter和FileAdapter实现文件I0的支持。其中,FttpAdapter 提供对远程文件的操作,FileAdapter 提供对本地文件的操作,两者的API和使用相似,这里主要说明FttpAdapter。

第7章,分布式作业调度平台的实现

在前面第2章介绍的分布式并行计算原理中,我们看到可以将工头工人程序部署到不同的机器_上运行,然后完成计算。但是,.当这样的并行计算应用非常多,而我们的机器数量有限时,我们需要排队依次来使用机器,第一个并行计算应用跑完了,再跑第二个应用,如果第一个并行计算应用只占部分机器,那么可以考虑同时跑第二个应用....这就涉及建立-个作业调度平台去完成。

我们知道Hadoop本身包含了作业调度的部分,按照Hadoop开发规范,开发好一个作业,打包后,Hadoop 会分发到相应的机器上去运行,但是实际上这仅仅是-种任务调度层面的实现,我们还需要资源层面的调度,比如对CPU、内存、带宽等的分配和管理。

本章会讲述调度平台的设计和实现,包括任务调度和资源调度的实现机制,各种资源调度算法,并以MPI调度器的为例讲述一个完整Demo,最后再讲述市场上常用的调度实现和框架,比如Torque、Mesos、Yarn 等。

由于篇幅限制,小编在这里就不做过多的介绍了,有需要本【大规模分布式系统架构与设计实战】技术文档的小伙伴,就可以转发关注一下小编,私信小编“学习”来得到获取方式吧!感谢大家的配合和信任。

现在的架构很多,各种各样的,如高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等,还有和这些架构相关的管理型的技术方法,如 DevOps、应用监控、自动化运维、SOA 服务治理、去 IOE 等等,还有很多。

那什么是分布式系统?分布式系统是支持分布式处理的软件系统,是由通信网络互联的多处理机体系结构上执行任务的系统。包括分布式操作系统、分布式程序设计语言及其编译系统、分布式文件系统分布式数据库系统等,当然这些也是分布式的关键技术。

使用分布式系统主要有:

1.增大系统容量。我们的业务量越来越大,而要能应对越来越大的业务量,一台机器的性能已经无法满足了,我们需要多台机器才能应对大规模的应用场景。所以,我们需要垂直或是水平拆分业务系统,让其变成一个分布式的架构。

2.加强系统可用。我们的业务越来越关键,需要提高整个系统架构的可用性,这就意味着架构中不能存在单点故障。这样,整个系统不会因为一台机器出故障而导致整体不可用。所以,需要通过分布式架构来冗余系统以消除单点故障,从而提高系统的可用性。

3.因为模块化,所以系统模块重用度更高

4.因为软件服务模块被拆分,开发和发布速度可以并行而变得更快

5.系统扩展性更高

6.团队协作流程也会得到改善

分布式系统的类型有三种:

1.分布式处理,但只有一个总数据库,没有局部数据库

2.分层式处理,每一层都有自己的数据库

3.充分分散的分布式网络,没有中央控制部分,各节点之间的联系方式又可以有多种,如松散的联接,紧密的联接,动态的联接,广播通知式的联接等

然后来对比一下单体应用和分布式架构的优缺点:

1.从上面的表格可以看到,分布式系统虽然有一些优势,但也存在一些问题

2.架构设计变得复杂(尤其是其中的分布式事务)

3.部署单个服务会比较快,但是如果一次部署需要多个服务,部署会变得复杂

4.系统的吞吐量会变大,但是响应时间会变长

5.运维复杂度会因为服务变多而变得很复杂

6.架构复杂导致学习曲线变大

7.测试和查错的复杂度增大

8.技术可以很多样,这会带来维护和运维的复杂度

9.管理分布式系统中的服务和调度变得困难和复杂

所以总结一下,分布式系统架构的难点在于系统设计,以及管理和运维。所以分布式系统架构在解决了一些问题的同时,也增加了其他的问题,这就需要不断的再用各种各样的技术跟手段去解决这些新增的问题。

华为十年架构师实战经验总结:大规模分布式系统架构与设计实战相关推荐

  1. Linux运维高级架构师实战视频教程

    Linux运维高级架构师实战视频教程 运维工程师需要了解系统的服务搭建.shell脚本的编写(便于维护或者日程),mysql操作. 这是重要的,而且是必须的.其次就是涉及Linux系统接入网络的应用. ...

  2. 【面经】- 上汽新能源车企JAVA大数据架构师实战面经分享

    2022新能源车企面试实战系列: 实战新能源车企资深java&大数据面经之蔚来篇:传送门 实战合众新能源哪吒技术经理岗实战面经 实战上汽飞凡大数据架构师实战面经 文章目录 1. 前言 1.1 ...

  3. 2021年最新 k8s安装部署步骤 kubernetes从入门到实践 K8S实战容器化迁移实战教程 K8S存储之Ceph分布式存储系统 K8S架构师实战指南

    2021年最新 k8s安装部署步骤 kubernetes从入门到实践 K8S实战容器化迁移实战教程 K8S存储之Ceph分布式存储系统 K8S架构师实战指南

  4. 架构师实战培训(架构设计+数据后台+快速开发+二次开发+发布部署)

    架构师实战培训(架构设计+数据后台+快速开发+二次开发+发布部署)系列视频课程 课程目标 学习MIS系统.高并发系统.单机系统设计思路: 理解设计模式,学会命令模式: 适用人群 CIO.CTO.技术总 ...

  5. 《大规模分布式系统架构与设计实战》

    <大规模分布式系统架构与设计实战> 基本信息 作者: 彭渊 丛书名: 大数据技术丛书 出版社:机械工业出版社 ISBN:9787111455035 上架时间:2014-2-21 出版日期: ...

  6. 5.凤凰架构:构建可靠的大型分布式系统 --- 架构安全性

    第5章 架构安全性计算机系统的安全,不仅仅是指"防御系统被黑客攻击"这样狭义的安全,还至少应包括以下问题的具体解决方案:1.认证(Authentication)系统如何正确分辨操作 ...

  7. 飞天5K实战经验:大规模分布式系统运维实践

    摘要:随着阿里体量越来越大,数据也在呈几何倍数增长.因此,在运维工作上已很难找到其他企业的成功经验来借鉴,但又不能凭空揣测解决方案.本文详解了阿里飞天5K实战经验,带你了解大规模分布式系统运维实践. ...

  8. Redis一通百通~P8架构师带你玩转Redis高性能缓存设计实战

    前言 高并发十分考验架构师功底,它也是分布式架构设计中必须考虑的因素之一.要知道,光靠服务器堆是没有出路的. 想看看大牛是怎么面对高并发的?想知道BATJ大厂是怎么设计高可用架构的?这里有可参考的实践 ...

  9. 终于读完了阿里云p9专家分享云原生Kubernetes全栈架构师实战文档

    都说程序员工资高.待遇好, 2022 金九银十到了,你的小目标是 30K.40K,还是 16薪的 20K?作为一名 Java 开发工程师,当能力可以满足公司业务需求时,拿到超预期的 Offer 并不算 ...

  10. 黑马Java架构师实战训练学习手册

    java架构师需要做六个方面的工作. 1,需求整理分析 首先,第一手的信息损失最少,架构师能够更好的把握需求:其次,分析人员在与客户交流时,往往不会深入挖掘需求,因为有很多隐藏的需求客户自己都不见得意 ...

最新文章

  1. 师生对话:我们都曾是爱学习的孩子
  2. centos 7下独立的python 2.7环境安装
  3. 信号处理:CTFS-CTFT
  4. 斯坦福大学 计算机视觉方面课程资料
  5. 积木赛尔号机器人_赛尔号:盖亚是如何一步步得到缪斯的青睐?千万别将他看成直男...
  6. Win32页上的所有控件属性与方法
  7. dj电商-数据表的设计-商品表的设计
  8. C语言之字符串探究(九):空格去除——trim系列
  9. 【面试】基于二叉树层次遍历相关问题的求解
  10. 基本概念学习(8006)--南桥芯片
  11. Matlab中的ttest2()函数实现
  12. 夏普(SHARP) LS050T1SX01 液晶屏接口定义
  13. 线性光耦 和 非线性光耦
  14. 企业如何做好员工关怀,减少人才流失
  15. RTX 4070TI和RTX 4080差距 RTX4070ti和4080区别对比
  16. 0910---scipy.signal.argrelextrema 计算多维数组局部极值问题
  17. win10商店打不开解决办法
  18. 【雕爷学编程】Arduino动手做(79)---MQ135空气检测模块
  19. Vista中运行软件的兼容性测试(转)
  20. 浮云E绘图之多点连线源码

热门文章

  1. 介绍几个能下载中英文双语字幕电影的网站
  2. windows内核开发笔记九:内核开发分页内存与非分页内存
  3. 华为笔试题——去除重复的数字
  4. STM32 cjson的GBK/UTF-8/UNICODE转换、显示中文、GBK字库
  5. 计算机的五笔咋么学,电脑五笔输入法怎么学
  6. 自建服务器解网络锁,跟断刀学越狱】10分钟掌握iPhone1-4代刷机技巧
  7. android imagebutton 点击效果缩小,ImageButton和ZoomButton使用
  8. Linux系统调用原理及实现
  9. mtk sensor 驱动调试
  10. 苹果手机更改照片大小kb,苹果手机怎么把图片缩小 怎么用手机把图片缩小