近年来,随着业务规模的发展和复杂度的增加,传统的单体应用已经很难适应业务迭代的诉求,越来越多的公司开始进行服务化的改造。很高兴看到ApacheDubbo被许多公司采用,作为服务化改造的基础架构进行演进。这里面就包括了许多互联网公司、国字头的大型企业,以及金融行业的巨头公司。ApacheDubbo因为良好的设计和扩展性受到许多开发者的欢迎,然而当开发者需要深入了解Dubbo底层的架构设计和实现的时候,往往会有些不知所措。网上也有很多爱好者撰写的源码分析等文章,虽有所有启发和裨益,但总觉得不****够成****体系。令人遗憾的是,市面上始终缺乏-本完整的、体系化的对Apache Dubbo进行深入原理剖析的书。
本书首先介绍Dubbo的简史、后续的规划和整体架构大图:接着介绍Dubbo环境配置,并基于Dubbo开发第-款应用程序:然后介绍Dubbo内置的常用注册中心的实现原理,Dubbo扩展点加载的原理和实现,Dubbo 的启动、服务暴露、服务消费和优雅停机的机制,Dubbo 中RPC协议细节、编解码和服务调用实现原理,Dubbo 集群容错、路由和负载均衡机制,Dubbo 的扩展点相关知识,Dubbo 高级特性的实现和原理,Dubbo 常用的Filter的实现原理,Dubbo 中新增etcd3 注册中心的实战内容和Dubbo服务治理平台的相关知识:最后介绍Dubbo未来生态和Dubbo Mesh的相关知识。
说明:完整的《分布式核心原理解析》学习文档篇幅较长,共有330页,这里限于篇幅,故只展示一部分的文档
本书从Kafka的基础概念切入,循序渐进地转入对其内部原理的剖析。本书主要阐述了Kafka 中生产者客户端、消费者客户端、主题与分区、日志存储、原理解析、监控管理、应用扩展及流式计算等内容虽然Kafka的内核使用Scala语言编写,但本书基本以Java语言作为主要的示例语言,方便大多数读者的理解。虽然本书没有明确的界定,但总体上可以划分为三个部分:基础篇、原理篇和扩展篇,前4章为基础篇,包括基础概念、生产者、消费者,以及主题与分区,学习完这4章的内容完全可以应对绝大多数的开发场景。第5章至第8章为原理篇,包括对日志存储、协议设计、控制器、组协调器、事务、- 致性、可靠性等内容的探究,学习完这4章的内容可以让读者对Kafka有一个深刻的认知。最后4章从应用扩展层面来做讲解,可以归类为扩展篇,主要内容包括监控、应用工具、应用扩展(延时队列、重试队列、死信队列、消息轨迹等)、与Spark的集成等,让读者可以对Kafka的生态有一个更加全面的认知。
分布式起源
分布式系统的指标
分布式互斥
分布式选举
分布式选举的算法
分布式共识
分布式共识方法
分布式事务
三阶段提交方法
分布式锁
分布式资源管理与负载调度
分布式体系结构一- 集中式结构
经典集中式结构
分布式体系结构一一非集中式结构
分布式调度架构一- -单体调度
分布式调度架构一-两层调度
分布式调度架构一一共享状态调度
分布式事务与分布式锁相关问题
分布式计算模式- -MR
分布式计算模式--Stream
分布式计算模式- - - Aector
分布式计算模式- - 流水线
分布式通信- - 远程调用
分布式通信一-发布订阅
分布式通信- -消息队列
分布式体系架构与分布式计算相关问题
CAP理论
CAP选择策略及应用
布式数据存储系统一一三要素
分布式数据存储系统三要素
数据分布方式一一哈希与一 致性哈希
分布式数据复制技术
分布式数据一 缓存技术
分布式高可靠一-负载均衡
分布式高可靠一- 流量控制
分布式系统流量控制策略
分布式高可用- -故障隔离
分布式故障基础知识
如何判断并解决网络分区问题?
当下微服务架构越来越流行,分布式的处理成为项目中一个绕不过去的坎,在中高级开发的面试中,分布式也成了必选项,很多人在项目中忙于业务实现,忽略了或者没有机会对分布式进行了解。
这个人人都喊着“高并发”“高可用”的时代里,分布式系统的重要性不言而喻。从整个行业的招聘趋势就能看出来,大型互联网公司在招聘后端工程师的时候,都会要求候选人有分布式相关的工作经验。与其直接用些抽象、晦涩的技术名词去给分布式下一个定义,还不如从理解分布式的发展驱动因素开始,我们一起去探寻它的本质,自然而然地也就清楚它的定义了。
本书以教科书的方式,循序渐进地向软件开发人员或软件开发的项目管理人员,讲述如何快速掌握分布式版本控制系统Git的应用方法,让繁琐复杂的项目开发的版本控制变得高效且轻松自如。书中细致入微地介绍了如何使用设置文件和操作Git文档库,以及建立项目开发的分支、合并分支和解决冲突的操作:在具备扎实的基础之后,介绍了GitGUl 程序用法,以及Git在团队开发模式中应用的问题:讲述如何与全球的项目开发人员进行交流,提升程序开发的经验和能力:介绍了GitHub、 Bitbucket、 GitLab等提供Git服务的网站:本书最后的重点为介绍架设Git Server 的几种方法,让每一个项目开发团队,可以按照自己的软硬件环境,选择适合的方式来控管项目开发。
本书以循序渐进的方式,先从单机操作模式开始,让读者熟悉Git的基本用法,接着学习Git在团队开发模式中的实际运用,并通过介绍GitHub、Bitbucket、 GitL ab等提供Git服务的网站,让读者可以和全世界的项目开发人员交流,提升程序开发的经验和能力。
本书的最后介绍了架设Git Server的几种方法,让每个项目开发团队 ,可以按照自己的软硬件环境,选择适合的方式来有效管控自己开发的项目。