课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在上期刚刚给大家简单介绍了关于微服务与其他架构形式的区别等问题。今天,我们就来了解一下,在微服务架构环境下的分布式系统的使用情况。
分布式系统的问题
引出分布式系统的可能问题:节点故障、网络延迟,结合错误检测的可行方案进行介绍;
分布式中的时间和顺序的问题,以及标量时钟和向量时钟的实现。
分布式数据存储
分布式数据存储的技术选型、关系型数据库以及一些流行的 NoSQL 技术介绍(MongoDB、Redis、Neo4j 及 Cassandra 等);
分布式存储技术使用的数据结构,了解底层数据存储原理(HashTable、SSTable、LSMTree、BTree 等);
各个存储方案使用的场景以及对比。
数据复制
对于大规模存储集群,需要进行数据库的复制、排除单点故障;
数据复制的模型和实现以及几种复制日志的实现方式;
主备同步、主主复制、多数据中心的数据复制方案;
数据复制中的读写一致性问题以及写冲突问题的解决;
介绍以 MySQL 为例延伸集群数据复制方案。
数据分区
当单个领域模型维度的数据已经到一定规模时,需要进行数据分区,减轻单库压力。数据分区和分表又有哪些不同?数据分区可以如何实现?
以 MySQL 的分区策略为例介绍不同分区策略的实现。
数据分区后,请求的路由有哪些解决方案?会展开介绍不同的方案又有什么差别。
服务发现和服务通信
基于容器技术的微服务体系,怎样选择服务发现、负载均衡的技术实现?不同的服务发现的技术有什么区别,如何选型?
为了达到松耦合的目的以及基于 DDD 思想,微服务之间减少服务调用可以通过哪些技术实现?API Gateway 可以用哪些技术框架实现?远程调用可以有哪些技术框架?怎样提高同步通信的性能?
分布式的消息队列都有哪些开源、商业实现?应该怎样选择适合的消息队列?
使用 DDD 思想应该如何应对服务通信,如何在实践中应用 DDD?
分布式存储集群的事务
理解分布式中的事务以及本地事务的基础概念;
分布式存储的隔离级别以及各个 DB 支持的隔离方案的实现原理;
以 MySQL InnoDB 中的 MVCC 为例看并发控制的在 MySQL 的实现,学习存储系统对于分布式事务的实现思想。
分布式一致性
了解分布式系统的一致性有哪些问题以及一致性的几种实现程度的模型:线性一致性(强一致性)、顺序一致性及因果一致性、终一致性;
分布式一致性相关的理论 CAP(CA、CP、AP 的相关算法)的介绍以及适合用于哪些实践;
介绍 FLP 不可能结果,以及 BASE 理论。
分布式事务实践
了解微服务中分布式事务的问题;
1.介绍强一致性的实践:二阶段、三阶段。2PC、3PC 的优缺点和限制,XA 协议的介绍和实践方案,以及终一致性实践:TCC 模型和实践方案;
2.分布式锁的实现模型和实践方案;
3.基于微服务下的分布式事务实践案例分析。
共识问题
了解为什么分布式场景下有共识问题;
介绍共识算法和全局消息广播的实现,公式算法的基础:leader 选举和 quorum 算法,以及一些已实现的算法的介绍和对比:VSR、Raft、Paxos、ZAB;
共识算法在微服务体系的应用场景介绍:服务发现、一致性 kv 存储(Etcd、Zk)以及技术的选型如何权衡一致性的追求和性能。
架构设计
了解了很多分布式的问题和解决方案之后,回归微服务架构模型、技术选型、再回顾下微服务的弊端和特点;
微服务体系的架构要素分析:安全、伸缩性、性能、可用性、扩展性;
结合团队、业务场景的 DDD 实践和总结。
课程寄语
如果你是一位开发工程师,相信阅读完本系列课程,将会了解很多分布式系统的理论知识,同时也会理解一些分布式存储、中间件技术的原理,对工作中的分布式架构会有体系化的清晰认知。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!