怎么才能学好分布式架构和相关技术?一起来深入聊聊分布式技术

20世纪90年代,业界采用了基于接口/构件的架构设计方式,很自然的演化出了 SOA,基于服务的架构,但随着时间的发展,程序设计越来越追求轻量级,慢慢的如 WSDL,XML 被 JSON,RESTful 等方式替代,但是 SOA 的思想一直延续着,也就是如今所说的分布式服务架构。

然而,分布式的世界中涉及到大量的协议(raft、2pc、lease、quorum 等)、大量的理论(FLP, CAP等)、大量的系统(GFS、MongoDB、MapReduce、Spark、RabbitMQ等)。

两个字总结就是:硬核!

我们需要使用分布式系统主要有两个原因:

1.增加系统容量

2.加强系统可用

但就是为了上述的两个理由,引入了更多的复杂性,例如:

架构设计变得异常复杂。

分布式系统下部署流程变得更复杂。

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

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

测试和查错的复杂度增大。

技术多元化,这会带来维护和运维的复杂度。

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

这可能就是技术发展的必然吧:解决一个问题,常常会引入新的问题。

比如,为了提高可用性,引入了冗余;而冗余又带来了副本之间的一致性问题,所以引入了中心化副本协议(primary/secondary);那么接下来就要考虑 primary(节点)故障时候的选举问题。

还有的时候整个设计形成了一个闭环:我们需要提高性能,因此设计了分片缓存,然而为了保证数据的正确性,我们又需要考虑数据的一致性,然后为了数据的一致性,又不得不放弃一定的性能。

下面就给大家分享一份在多年的学习、工作中积累下来的分布式知识文档

一、分布式系统常用技术及案例分析

分布式场景解决方案.mind图

目录:

本文档共分为10个版块。

第1版块:介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知

识点以及可能会面临的问题,其中包括线程、通信、-致性、容错性、CAP理论、安全性合并

发等相关内容。

第2版块:详细介绍分布式系统的架构体系,包括传统的基于对象的体系结构、SOA,也包括

最近比较火的RESTful风格架构、微服务、容器技术、Serverless 架构等。

第3版块:介绍常用的分布式消息服务框架,包括Apache ActiveMQ、RabbitMQ、 RockeMQ、

Apache Kafka等。

第4版块:介绍分布式计算理论和应用框架方面的内容,包括MapReduce、Apache Hadoop.

Apache Spark、Apache Mesos等。

第5版块:介绍分布式存储理论和应用框架方面的内容,包括Bigtable Apache HBase. Apache

Cassandra、Memcached、 Redis、 MongoDB 等。

第6版块:介绍分布式监控方面常用的技术,包括Nagios、Zabbix、Consul、 ZooKeeper 等。

第7版块:介绍常用的分布式版本控制工具,包括Bazaar、Mercurial、 Git 等。

第8版块:介绍RESTful API、微服务及容器相关的技术,着重介绍Jersey、Spring Boot、Docker

等技术的应用。

第9版块和第10版块:分别介绍以淘宝网和Twitter为代表的国内外知名互联网企业的大型分布

式系统案例,分析其架构设计以及演变过程。

总内容截图:

二、分布式事务专题

  1. 基础概念

  1. 分布式事务基础理论

  1. 分布式事务解决方案之2PC(两阶段提交)

  1. 分布式事务解决方案之TCC

  1. 分布式事务解决方案之可靠消息最终一致性

  1. 分布式事务解决方案之最大努力通知

  1. 分布式事务综合案例分析

总内容截图:

三、从Paxos到ZooKeeper分布式一致性原理与实践

在计算机科学领域,分布式一致性问题是一个相当重要,且被广泛探索与论证的问题,通常存在于诸如分布式文件系统,级存系统和數据库等大型分布式存储系统中。什么是分布式一致性?分布式一致性分为哪些类型?分布式系统达到一致性后将会是一个什么样的状态?如果失去了一致性约束,分布式系统是否还可以依赖?如果一味地追求一致性,对系统的整体架构和性能又有多大影响?这一系列的问题,似乎都没有一个严格意义上准确的定义和答案。

第一版块:分布式架构

  1. 从集中式到分布式

  1. 从ACID到CAP/BASE

第二版块:一致性协议

  1. 2PC与3PC

  1. Paxos算法

第三版块:Paxos的工程实践

  1. Chubby

  1. Hypertable

第四版块:ZooKeeper与Paxos

  1. 初识ZooKeeper

  1. ZooKeeper的ZAB协议

第五版块:使用ZooKeeper

  1. 部客与运行

  1. 客户端脚本

  1. Java客户端API使用

  1. 开源客户端

第六版块:ZooKeeper的典型应用场景

  1. 典型应用场景及实现注

  1. ZooKeeper在大型分布式系统中的应用

  1. ZooKeeper在阿里巴巴的实践与应用

第七版块:ZooKeeper技术内幕

  1. 系统模型

  1. 序列化与协议

  1. 客户端

  1. 会话

  1. 服务器启动

  1. Leader选举

  1. 各服务器角色介绍

  1. 请求处理

  1. 数据与存储

第八版块:ZooKeeper运维

  1. 配置详解

  1. 四字命令

  1. JMX

  1. 监控

  1. 构建一个高可用的集群

  1. 日常运维

总内容截图:

四、分布式数据库架构企业实践基于Mycat中间件

本文档总计8章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用Mycat实现分布式数据库而展开。对Mycat从入门到进阶、从高级技术实践到架构剖析、从网络通信协议解析到系统工作原理的方方面面进行了详细讲解,并剂析Mycat的SQL路由、跨库联合查询、分布式事务及原生MySQL. PostgreSQL 协议等核心技术。通过本书不可以了解Mycat的基本概念,掌握Mycat配置等技术,还能感受到Mycat的架构设计之美,了解Mycat。

  1. 数据库中间件与分布式数据库的实现

  1. Mycat入门

  1. Mycat进阶

  1. Mycat高级技术实战

  1. Mycat企业运维

  1. Mycat架构剖析

  1. Mycat核心技术分析

  1. Mycat多数据库支持原理与实现

总内容截图:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值