前言
有人调侃我们说:
- 程序员不如送外卖。送外卖是搬运食物,自己是搬运代码,都不产出新的东西……
- 透支体力,又消耗健康,可替代性极强,30岁之后就要面临被优化的危险……
- 想跳槽,但是更高的平台难进,同级别的平台又是重复……
- 想利用业余时间学习提升,但是自己能力有限,很难形成知识体系…
这些其实都是初级程序员面临的困境,当你提高自身能力,登上更高的层级之后,无论薪资还是发展都会有很大的提升。
那么问题来了,怎么才能度过初级程序员的瓶颈,进阶成为高薪工程师呢?
本文凝聚了作者多年架构经验,内容覆盖网络、分布式、微服务、存储、计算等。
深入浅出地讲解了云原生、Kubernetes和Service Mesh等热门技术,并详细剖析其原理,值得每个IT人士阅读。
不论你是有十几年研发经验及架构经验的IT老手,还是刚入门系统架构的IT新手,本文都能对你理解分布式架构和微服务架构大有助益。
希望大家能够仔仔细细的阅读,不断地品读文中的精华,把它慢慢吸收掉,转化为自己的东西,并且能够灵活运用到工作中去,不断地提升自己的技术深度和宽度,希望本文能够得到大家的喜欢!!
本文咱们将从目录、主要内容和专家大牛对本文的评价三部分来进行讲解,希望大家能够喜欢!!
首先,咱们看目录
其次,看主要内容讲解
**第1章深入理解网络,**网络之于分布式系统,就好像双翼之于飞鸟。随着虚拟化、云计算和大数据的不断发展,深入理解网络变得越来越重要。
1.1从国际互联网开始,几台计算机接在一台交换机上,相互能直接发送信息、传输数据,这样的网络叫作局域网,办公室和家庭里的网络就是典型的局域网。局域网需要上外网的时候,需要电信服务提供商(ISP)提供上网服务,将局域网对接到更大的网络—─城域网。连接几个城域网的网络叫作国家骨干网,连接全球骨干网的网络叫作国际骨干网。如下所示是国际互联网的一个示意图,国际互联网是一个分层汇聚网络,位于顶端的是国际骨干网,负责连接国家骨干网,在一些国家之间还有直达通道。在国家内部通常有一个全国性的高速国家骨干网,这个骨干网只能在某些点对接国际骨干网。国家骨干网负责将分布在各个城市里的城域网连接起来,每个城域网则负责将本区域众多园区网接入,这些园区网可以是省内某些高新产业园的网络、一些大的IT公司的网络等。
1.2 NIO,—本难念的经,我们知道,分布式系统的基础是网络。因此,网络编程是分布式软件工程师和架构师的必备技能之一,而且随着当前大数据和实时计算技术的兴起,高性能RPC架构与网络编程技术再次成为焦点。不管是RPC领域的ZeroC Ice、Thrift,还是经典分布式框架Actor模型中的Akka,或者实时流领域的Storm、Spark、Flink,又或者开源分布式数据库中的Mycat、VoltDB,这些高大上产品的底层通信技术都采用了NIO(非阻塞通信)通信技术。而Java领域里大名鼎鼎的NIO框架——Netty,则被众多的开源项目或商业软件所采用。
1.3AIO,大道至简的设计与苦涩的现实
1.4网络传输中的对象序列化问题
1.5 HTTP的前世今生
1.6分布式系统的基石:TCP/IP
1.7从CDN到SD-WAN
**第2章分布式系统的经典理论,**分布式系统从诞生到现在已经有几十个年头了,其中伴随着一些很重要的基础理论,正是这些影响深远的基础理论,奠定了分布式系统的坚实基础,造就了分布式领域的一座座宏伟大厦。为了练就一身武功,让我们从这些经典的分布式理论开始学起吧。
2.1从分布式系统的设计理念说起
2.2分布式系统的—致性原理
2.3分布式系统的基石之ZooKeeper
2.4经典的CAP理论
2.5 BASE准则,—个影响深远的指导思想
2.6重新认识分布式事务
**第3章聊聊RPC,**每个分布式系统都离不开多进程的通信问题,包括本机上多进程之间的IPC通信和基于网络的远程通信技术,后者是分布式系统架构中的核心和关键基础技术之一,就远程通信而言,抛开各种专用系统的远程通信协议如NFS、FTP、SNMP、SMTP、POP3不说,各种通用的远程通信技术也在不断发展和变化,比如从最古老的RPC远程通信技术到曾经风靡一时的SOAP(Web Service)协议,再到后面红极一时的HTTP REST。如今,由于移动互联网和大数据时代的兴起,支持多语言与高性能传输的各种RPC架构再次成为热点技术。
3.1从IPC通信说起
3.2古老又有生命力的RPC
3.3从RPC到服务治理框架
3.4基于ZeroC Ice的微服务架构指南
**第4章深入浅析内存,**除了CPU,内存大概是最重要的计算资源了。基本成为分布式系统标配的缓存中间件、高性能的数据处理系统及当前流行的大数据平台,都离不开对计算机内存的深入理解与巧妙使用。在本章中我们将探索这个让人感到既熟悉又复杂的领域。
4.1你所不知道的内存知识
4.2内存计算技术的前世今生
4.3内存缓存技术分析
4.4内存计算产品分析
**第5章深入解析分布式文件存储,**分布式文件系统是大型分布式系统中非常重要的基础设施。Hadoop中最重要的技术不是MapReduce,而是HDFS。除了HDFS,Spark还可以与老牌分布式文件系统GlusterFS结合使用。
OpenStack中最重要且能独立运营的子系统是分布式对象存储系统Swift。Docker及 Kubernetes容器技术依然需要通过分布式文件系统实现批量处理任务中的共享存储问题。更不用说,无数电商系统都需要一个分布式文件系统来存储海量照片。因此,掌握分布式存储相关的知识和技能,对于一名分布式系统架构师来说非常重要。
5.1数据存储进化史
5.2经典的网络文件系统NFS
5.3高性能计算领域的分布式文件系统
5.4企业级分布式文件系统GlusterFS
5.5创新的Linux分布式存储系统——Ceph
5.6星际文件系统lPFS
5.7软件定义存储
**第6章聊聊分布式计算,**不管是网络、内存还是存储的分布式,它们的最终目标都是实现计算的分布式:数据在各个计算机节点上流动,同时各个计算机节点都能以某种方式访问共享数据,最终分布式计算后的输出结果被持久化存储和输出。分布式计算作为分布式系统里最重要的一个能力和目标,也是大数据系统的关键技术之一。经过多年的发展与演进,目前业界已经存在很多成熟的分布式计算开源编程框架和平台。作为架构师,我们应该尽可能地了解和掌握这些框架和平台。
6.1不得不说的Actor模型
6.2Actor原理与实践
6.3初识Akka
6.4适用面很广的Storm
6.5 MapReduce及其引发的新世界
**第7章全文检索与消息队列中间件,**在前面的章节中,我们学习了构建一个分布式系统所必需的各种基本知识和技能,比如分布式系统的基础理论、网络编程技术、RPC架构、内存计算、分布式文件系统、分布式计算框架等,但仅仅掌握这些内容还是远远不够的,我们还需要学习和掌握分布式系统中常用的一些中间件,这些中间件主要用于分布式系统中常见的一些业务场景:数据全文检索、日志和消息处理、数据库的分片、网站的负载均衡等。由于篇幅有限,本章只对全文检索与消息队列这两个用途广泛又相对复杂的中间件进行全面介绍。
7.1全文检索
7.2消息队列
**第8章微服务架构,**微服务架构是当前很热门的一个概念,是技术发展的必然结果。微服务架构也不是一个缥缈、空洞的术语,它的核心理念与架构原则是实实在在的,虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,稳妥地实施项目的微服务化改造或开发进程。
8.1微服务架构概述
8.2几种常见的微服务架构方案
8.3深入Kubernetes微服务平台
8.4从微服务到Service Mesh
第9章架构实践,本章我们将通过实践继续强化自己的“架构解密”能力。
9.1公益项目wuhansun实践
9.2身边购平台实践
9.3 DIY—个有难度的分布式集群
最后,看专家大牛对本文的评价
希望大家阅读完本文之后,能够把大家的架构思维给提上来,因为语言只是一种工具,最重要的还是拥有架构师思维的这一种能力!
希望本文能够把大家的架构思维能力给提升上来,也希望大家能够仔细钻研,能够演化出来新的技术知识来!
大家好好努力吧!!