微服务架构(day8)| 青训营笔记

91 阅读2分钟

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

image.png

本文基于字节内部课+上网自学的内容。

微服务架构——当前大多数互联网公司的标准架构。

1.微服务之前世今生

1.演变历史

单体架构->垂直应用架构->分布式架构->SOA架构->微服务架构

2.核心要素

服务治理:服务注册、服务发现、流量治理...
可观测性(直接观察每个结点的情况不现实,必须能够对每个部分的日志进行采集等):日志采集、日志分析、监控打点、链路追踪(服务的链式调用,查找问题时必须能够有跨机器的追踪能力。)...
安全性(服务间调用必须有认证授权的过程):身份验证、认证授权、访问令牌...

2.架构原理及其功能

1.基本的概念

服务(service):一组具有相同逻辑的运行实体(相同服务在不同实例中代码是相同的。)
实例(instance):在一个服务中,每个运行的实体就是一个实例(一个运行着服务的机器。)

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

2.核心服务治理功能

服务发布

定义:让一个服务升级运行新代码的过程。
难点:服务是在线的,面临服务不可用(随时有用户在使用,不能随时停止)、服务抖动(实例重启会导致这部分流量断掉)、服务回滚(升级之后有bug,线上环境中很致命,必须迅速回滚,不管问题大小)等问题
实践中采用:蓝绿部署(简单稳定,但需要二倍资源)、灰度发布/金丝雀发布(部分上线,尝试运行一下,一点点切换)

流量治理

定义:基于地区、集群、实例、请求,对端到端流量的路由路径进行精确控制。

负载均衡

定义:分配请求在每个下游实例上的分布。

稳定性治理

定义:解决线上服务出现的一些问题,这与程序是否正确无关。比如,遇到网络攻击、机房断电、流量突增等问题。
常见治理方法:限流、熔断(caller用,保险丝,负载过大则断线,还有冷却机制)、过载保护(callee用,调用次数过多就断线)、降级(对不重要的用户,例如内部测试,进行降级,优先保证客户)