我们利用15节课的内容,学习完了从微服务的定义,到微服务的实践相关的内容。这其中包含理论知识,也包含编程实现,今天我们来做个总结。
# 课程回顾
通过我们前面课程的学习,我们大概可以将我们所学习的内容分为以下几个模块:
# 1、微服务整体认识和理解
这其中包含:
- 单体应用的构建:小而美的业务类型适合使用单体项目来实现开发和部署,便于开发和维护,项目开发成本小。
- 单体应用的弊端:随着业务量增加,开发任务的迭代,在高可用性,项目扩展性,高性能上会遇到种种问题和瓶颈,单一的优化和框架升级无法满足需求,必须要进行架构改造。
- 微服务架构思想重构单体应用:区别于单体的项目部署和维护的开发角度,微服务架构试图从项目内部进行拆解,将项目按照核心功能进行划分,达到一遍多的目的,继续维持小而美的思想,让模块应用化。
- 微服务实践的主要问题:利用微服务架构的思想进行技术实践的过程中,需要解决一系列的问题,核心的问题需要考虑四个方面的内容:
- 1、客户端如何访问以微服务形式部署的功能
- 2、功能模块应用化后的依赖和通信问题
- 3、功能模块应用化后的管理问题
- 4、系统容错机制和高可用、高性能的保障机制
# 2、微服务的通信
在本系列课程中,我们涉及到的微服务的通信方面的内容主要是两个方面,分别是:通信协议和通信方式。
- 通信协议:在开发实践中,我们涉及到对通信双方的数据传输问题,需要对数据进行序列化和解析操作。有很多种供我们选择的序列化方式,比如:XML格式,JSON格式,gob格式(仅go语言),还有protobuf协议格式。基于效率的考虑,我们学习了Protobuf通信协议相关的内容。
- 通信方式:我们选择RPC的通信方式来实现多个服务端之间的通信,关于RPC的内容也有相关的章节介绍;我们会在微服务框架的课程当中讲解关于gRPC框架的内容,大家可以持续关注。
# 3、微服务的管理
微服务的管理部分主要是解决我们微服务实践问题中的第三个核心问题和第四个问题,实现对微服务的统一管理,并使用对应的框架保证高可用性。
在这一部分,主要涉及的内容包括:
- 微服务的发现机制介绍:通过PPT图解和文字介绍的方式向大家介绍发现机制的内部原理及实现思路,这是学习分布式系统的基础。
- 分布式系统的问题和难点:分布式系统面临的一个重要问题是单点故障,为了避免单点故障,需要解决多节点的共识问题。
- 分布式系统的解决方案:在本案例中,我们讲解Consul的解决方案,及Consul内部实现原理,这其中包含Consul的架构,Consul的节点分类,Consul节点启动,集群部署等一系列相关的操作。