这是我参与「第五届青训营 」伴学笔记创作活动的第10天。微服务架构是当前大多数互联网公司的标准架构。本节课重点讲解微服务架构背景由来及全貌,分析其基本原理及特征。
一、课程目标
- 微服务架构介绍
- 微服务架构原理及特征
- 核心服务治理功能
- 字节跳动服务治理实践
二、课程内容
1、微服务架构介绍
1.1 系统架构演变历史
单体架构、垂直应用架构、分布式架构、SOA架构、微服务架构。。。
-
单体架构:all in one process
- 优势:性能最高、冗余小
- 劣势:debug困难,模块相互影响、模块分工、开发流程
-
垂直应用架构:按照业务线垂直划分
- 优势:业务独立开发维护
- 劣势:不同业务还是单体
-
分布式架构:抽出业务无关的公共模块
- 优势:业务无关的独立服务
- 劣势:服务模块bug可导致全站瘫痪、调用关系复杂、不同服务冗余
-
SOA架构(Service Oriented Architecture):面向服务
- 优势:服务注册
- 劣势:整个系统是中心化的、需要从上至下设计、重构困难
-
微服务架构:彻底的服务化
- 优势:开发效率、业务独立设计、自下而上、故障隔离
- 劣势:治理、运维难度、观测挑战、安全性、分布式系统
2、微服务架构原理及特征
2.1 基本概念
- 服务:一组具有相同逻辑的运行实体
- 示例:一个服务中,每个运行实体即为一个实例
- 服务间通信:
- 对于单体服务,不同模块通信只是简单的函数调用
- 对于微服务:服务间通信意味着网络传输
2.2 服务注册及发现
- 问题:在代码层面如何指定调用一个目标服务的地址(ip:port)?
- 地址写死不行
- DNS?不行
- 解决:新增一个统一的服务注册中心,用于存储服务名到服务实例的映射
2.3 流量特征
- 统一网关入口
- 内网通信多数采用RPC
- 网状调用链路
未完待续。。。