微服务架构及服务治理 | 青训营笔记

80 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

今天我学习了Go掘金课的“微服务框架——不变的基建”,也就是视频课“后端入门-Go框架设计与实践”的6、7、8节课,课程视频总时长大约90分钟,我通过学习本节课程,学懂了微服务架构的一些原理并可以加以应用。

一、本堂课重点内容:

  • 本堂课的知识要点有哪些?
  1. 微服务架构的基本概念,基本组件、服务间通信、服务注册、服务发现
  2. 核心服务治理功能,包括服务发布、流量治理、负载均衡、稳定性治理

二、详细知识点介绍:

  • 本堂课介绍了哪些知识点?
  1. 微服务的演进历史(从前到后):
  • 单体架构(所有业务在一个系统中)
  • 垂直应用架构(按业务线垂直划分)
  • 分布式架构(抽出业务无关的服务层)
  • SOA架构(面向服务从上而下,重构困难)
  • 微服务架构(彻底服务化)
  1. 微服务架构的三大要素:服务治理、可观测性、安全
  2. 核心服务治理:
  • 服务发布:通过蓝绿部署、灰度发布等策略,可以让服务在不中断的情况下完成更新。但是可能有服务不可用、服务抖动、服务回滚等的问题
  • 流量治理:微服务架构可以从地区、集群、实例、请求等维度对端到端的流量在链路上进行精确控制
  • 负载均衡:常见的策略有Round Robin、Random、Ring Hash、Least Request
  • 稳定性治理:诸如限流、熔断、过载保护、降级等措施,应对突发情况

三、实践练习例子:

  • 有什么实践举例帮助理解知识点?
    此次并没有git的实际项目,但是本次学习的课件:bytedance.feishu.cn/file/boxcnc…
    在这当中有提到一个字节跳动服务治理实践,会有本地函数调用、远程函数调用的重试策略,例如:限制重试比例、防止链路重试、Hedged Requests……

四、课后个人总结:

  • 本章有什么知识点不容易掌握?
    可能直接通过理论理解框架会比较困难,希望后面会有实际的底层代码或是官方文档可供阅读的话也许会方便理解吧。

  • 什么地方容易与其他内容混淆?
    这个问题也许可以先从微服务与传统服务的区别入手,因为微服务是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。
    就传统的单体开发而言,开发简单,基本不会出现重复开发,也不会有分布式的管理和调用消耗。
    就微服务而言,一系列独立的服务共同组成系统,每个业务独立开发,会非常强调隔离性。

五、引用参考:

  • 我参考了哪些外部博客/笔记/文章?
    我参考了掘金视频课中的“后端入门-Go框架设计与实践”,也就是此次掘金内部课程:
    juejin.cn/course/byte… 另外还参考了Foxtail-Grass Studio的专辑封面,作为此次笔记的封面
  • 文章中有什么地方是我参考引用了外部博客/笔记/文章的?
    主要是课程的主要知识点总结,采用了一边阅读课件一边记录的方式进行了个人的一些学习总结。