微服务框架 | 青训营笔记

87 阅读2分钟

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

微服务架构介绍

架构演变

由于互联网发展、硬件设施发展、需求复杂······

单体 -> 垂直应用架构 -> 分布式架构 -> SOA架构(从上至下) -> 微服务架构(从下至上)

微服务架构核心要素

服务治理:服务注册、服务发现、负载均衡、扩缩容、流量治理······

可观测性:日志采集、分析、监控打点、异常报警、链路追踪······

安全:身份验证、认证授权、访问令牌、黑产攻击······

微服务架构原理及特征

基本概念

服务(Service):一组具有相同逻辑的运行实体(运行同样的代码)

实例(Instance):一个服务中,每个运行实体即为一个实例

集群(Cluster):服务内部的逻辑划分,包含多个实例

服务间通信:服务与服务之间是通过网络传输的;与之相对的,对于单体服务,不同模块间的通信只是简单的函数调用

服务注册及发现

不能简单的用ip地址进行网络通信 -> 新增一个统一的服务注册中心,用于存储服务名到服务实例的映射

服务实例上线及下线过程

流量特征

统一网关入口

内网通信多采用RPC

网状调用链路

核心服务治理功能

服务发布(deployment)

一个服务升级,运行新的代码的过程

难点:服务不可用、服务抖动、服务回滚

蓝绿发布:简单、稳定,但是需要两倍资源

灰度发布(金丝雀发布):精细的切分流量、回滚

流量治理

微服务架构下,可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行精确的控制

负载均衡 (Load Balance)

稳定性治理

线上服务总是会出问题的,但是这与程序的正确性无关

because of

网络攻击、流量徒增、机房断电、光纤被挖、机器故障、网络故障······

典型稳定性治理功能:
限流 + 熔断 + 过载保护 + 降级

image.png

字节跳动服务治理实践

对远程函数的调用 —— 重试

避免偶发的错误,提高SLA (Service-Level Agreement)


参考资料

微服务架构原理及特征 - 掘金 (juejin.cn)

【后端专场 学习资料四】第五届字节跳动青训营 - 掘金 (juejin.cn)