微服务架构原理与治理实践|青训营笔记

80 阅读2分钟

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

微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。随着互联的爆炸性发展,硬件设施的快速发展,需求复杂性的多样化,开发人员的急剧增加,计算机理论与技术的发展,旧的基础架构已经难以满足要求。微服务架构成为了当前大多数互联网公司的标准架构

架构历史

最初的架构是单体架构。优点是性能高,冗余小,缺点是debug困难,模块相互影响
第二代架构是垂直应用架构。优点是业务独立开发维护。缺点是不同业务存在冗余,每个业务依旧是单体
第三代架构是分布式架构。抽出了业务无关的公共模块。优点是业务无关的独立服务,缺点是服务模块bug可导致全网站瘫痪,调用关系复杂
第四代架构是SOA架构,面向服务。优点是引入了服务注册的概念,缺点是整个系统设计是中心化的,需要从上至下设计,重构困难
第五代架构是微服务架构,彻底的服务化。优点是高效的迭代效率,故障可控,缺点是治理、运维的困难增加

微服务架构的核心要素

服务治理:服务注册、服务发现、负载均衡、扩缩容、流量治理、稳定性治理
可观测性:日志采集、日志分析、监控打点、监控大盘、异常报警、链路追踪
安全:身份验证。认证授权、访问令牌、审计、传输加密、黑产攻击

基本概念

服务:一组具有相同逻辑的运行实体
实例:一个服务中,每个运行实体即为一个实例
实例与进程的关系:实例与进程之间没有必然的对应关系,可以一个实例对应一个或多个进程
集群:通常指服务内部的逻辑划分,包含多个实例
常见的实例承载形式:进程、VM、k8s pod
有状态/无状态服务:服务的实例是否存储了可持久化的数据