微服务相关学习 | 青训营笔记

53 阅读3分钟

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

一、课程简介

  1. 微服务架构介绍:微服务架构的背景由来、架构概览、基本要素;
  2. 微服务架构原理及特征:微服务架构的基本组件、工作原理、流量特征;
  3. 核心服务治理功能:核心的服务治理功能包括流量治理、服务均衡、稳定性治理;
  4. 字节跳动服务治理实践:字节跳动在微服务架构稳定性治理中,对请求充实策略的探索及实践;

二、详细知识

  • 系统架构演进的必要性:互联网爆炸性发展、硬件设施的快速发展、需求复杂性的多样化 、开发人员急剧增加、计算机理论及技术发展;前后经历了单体架构、垂直应用架构、分布式架构、SOA架构、微服务架构,之前的课程也讲过了;
  • 微服务架构核心要素:服务治理、可观测性、安全性,这节课的重点是第一点。
  • 服务指一组具有相同逻辑(运行同一份代码)的运行实体;实例指一个服务中,每个运行实体即为一个实例;实例和进程之间没有必然对应的关系,可以一个实例对应多个进程;集群指服务内部的逻辑划分,包含多个实例;常见的实例承载形式:进程、VM等;有状态服务(有存储)无状态服务(无存储);
  • 服务间通信:对于单体服务,不同模块通信只是简单的函数调用,而对于微服务,服务间通信意味着网络传输(HTTP、gRPC、Thrift);
  • 在微服务的注册及发现过程中,ip地址是没有办法写死的,因为有多个实体,而且在这个过程中DNS是没有办法使用的,因为DNS存在缓存,导致延时,也存在负载均衡问题,不支持服务实例的探活检查;解决办法是新增一个统一的服务注册中心,用于存储服务名到服务实例之间的映射关系 旧服务实例下线前,从服务注册中心删除该实例,下线流量; 新服务实例上线后,在服务注册中心注册该实例,上线流量;
  • 服务发布是指让一个服务升级运行新的代码的过程,最核心的挑战在于在线服务,不可能说断就断,包括三点:服务不可用、服务抖动、服务回滚
  • 蓝绿部署将服务分成两个部分,分别先后发布简单、稳定,但需要两倍资源;
  • 灰度发布(金丝雀发布)先发布少部分实例,接着逐步增加发布比例不需要增加资源回滚难度大,基础设施要求高;
  • 流量控制指在微服务架构中,可以从各个维度对端到端的流量在链路上进行精确控制;
  • 控制维度包括地区维度、集群维度、实例维度、请求维度,课程中通过一些例子去具体解释每个维度怎么控制;
  • 稳定性治理的一些手段:限流-限制服务处理的最大 QPS,拒绝过多请求;熔断-中断请求路径,增加冷却时间从而让故障实例尝试恢复;过载保护-在负载高的实例中,主动拒绝一部分请求,防止实例被打挂;降级-服务处理能力不足时,拒绝低级别的请求,只响应线上高优请求;

三、总结

2023.2.4打卡,仓促听课,但是知识跟之前的课有重叠,也比较偏理论,还是继续做我们的大作业项目,我们也没用到微服务。

四、参考引用

字节内部课程《核心服务治理功能》讲师周余发