这是我参与「第五届青训营 」笔记创作活动的第 7 天
前言
本文主要介绍:
微服务架构
架构介绍
微服务 (Microservices) 就是一些协同工作小而自治的服务。
2014年,Martin Fowler 与 James Lewis共同提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通信。同时服务会使用最小的规模的集中管理 (例如Docker) 能力,服务可以用不同的编程语言与数据库等组件实现 。
单体架构
all in one process
优势:
1.性能最高
2.冗余小
劣势:
-
debug困难
-
模块相互影响
-
模块分工、开发流程
垂直应用架构
按照业务线垂直划分
优势:
1.业务独立开发维护
劣势:
1.不同业务存在冗余
2.每个业务还是单体
分布式架构
抽出业务无关的公共模块
优势:
1.业务无关的独立服务
劣势:
1.服务模块bug可导致全站瘫痪
2.调用关系复杂
3.不同服务冗余
SOA架构
SOA架构(Service Oriented Architecture)
面向服务
优势:
1.服务注册
劣势:
1.整个系统设计是中心化的
2.需要从上至下设计
3.重构困难
微服务架构
彻底的服务化
优势:
1.开发效率
2.业务独立设计
3.自下而上
4.故障隔离
劣势: 1.治理、运维难度
2.观测挑战
3.安全性
4.分布式系统
微服务架构核心要素
服务治理
服务注册
服务发现
负载均衡
扩缩容
流量治理
稳定性治理
可观测性
日志采集
日志分析
监控打点
监控大盘
异常报警
链路追踪
安全
身份验证
认证授权
访问令牌
审计
传输加密
黑产攻击