微服务架构 | 青训营笔记

71 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第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
  • 网状调用链路

未完待续。。。