微服务框架入门 | 青训营笔记

234 阅读3分钟

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

引言

今天的课程是关于微服务框架的入门学习,从框架的发展历史开始,演进到微服务框架,学习了什么是微服务框架,知道微服务带来的好处和挑战,学习微服务框架的原理和核心服务功能,最后从实际例子进行总结。这篇文章主要是针对今天课程的记录和总结。


一、本堂课重点内容

本堂课的知识点

  • 微服务架构介绍
  • 微服务架构原理及特征
  • 核心服务治理功能
  • 字节跳动服务治理实践

二、详细知识点介绍

  • 微服务架构介绍

架构的发展(演进)历史

  1. 单体架构:所有的功能,业务模块都位于一个机器
  2. 垂直应用架构:按照业务线垂直划分
  3. 分布式架构:抽出了与业务无关的公共模块,各个模块服务的调用复杂
  4. SOA架构:面向服务,具有服务注册中心,整个系统设计是中心化的
  5. 微服务架构:彻底的服务化,但也具有分布式架构的缺点
  • 微服务架构核心要素

服务治理:服务注册,服务发现,负载均衡,扩缩容

可观察性:采集日志,日志分析

安全: 身份验证,认证授权,访问令牌

  • 微服务架构原理

服务:一组具有相同逻辑的运行实体

实例:一个服务中的每个运行实体

实例与进程的关系:没有必然对应关系,一般一对一或者一对多

常见的实例承载形式:进程、VM、k8s pod......

服务之间通信:通过网络进行通信,常见的网络协议:HTTP,RPC

  • 服务治理功能

服务发布:让一个服务升级运行新的代码的过程

流量治理:流量控制

负载均衡:Round Robin,Random

稳定性治理:限流,熔断,过载保护(负载高的实例,主动拒绝部分请求),降级(负载高的实例只处理级别更高的请求)

三、实践练习例子

请求重试的意义

  • 对于调用本地函数的请求重试通常是没有意义的
  • 对于调用远程函数的请求重试可以避免一些网络的偶发性错误,减低错误率

请求重试的难点

幂等性:多次执行相同的请求和只执行一次请求的影响相同。如数据库查询操作

实现幂等性的一种方法:每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证。如果验证通过删除token,下次请求再次判断token是否相等,如果不相等即重复提交。

重试策略:限制重试的次数,设置阈值

四、课后个人总结

今天这堂课程学习了微服务框架方面知识的基础,明白了使用微服务框架的好处和挑战,微服务是目前大多数互联网公司的系统架构,对于微服务框架的学习后期还需要继续努力,最好可以联系实际项目,实战非常重要。

五、引用参考

[1] 青训营课程资料 juejin.cn/post/719438…

[2] 课件 ‌⁤⁤‌微服务架构原理与治理实践 .pptx - 飞书云文档 (feishu.cn)