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

80 阅读3分钟

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

学习了解的必要性:微服务框架是当前大多数互联网公司的标准架构。

学习要点: 微服务架构的由来及原理|服务治理功能是如何工作的

微服务架构介绍

为什么系统架构需要演进

  • 互联网的爆炸发展
  • 硬件设施的快速发展
  • 需求复杂性的多样化
  • 开发人员的急剧增加
  • 计算机理论及技术的发展

系统架构演变历史

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

微服务架构

  • 核心:彻底的服务化
  • 优势:
    1. 开发效率高
    2. 业务独立设计
    3. 自下而上,不去管业务方,而是只用关注需要开发提供什么服务。
    4. 故障隔离:因为服务被拆分得较细,使得当发生故障时,故障会被隔离在某个微服务中
  • 劣势:由于其本身也是个分布式系统,因此具有分布式系统的一些特点
    1. 治理、运维困难。其功能拆分得很细。
    2. 观测挑战。
    3. 安全性。

架构概览 image.png

微服务架构核心要素

  • 服务治理:主要内容在后面的课程会单独提。包括服务注册、服务发现、负载均衡、扩缩容、流量治理、稳定性治理......
  • 可观测性:由于微服务架构是一个庞大的分布式架构,因此没法像解决单体架构中的问题那样看日志等等,就必须有帮助解决这些复杂链路中的问题。主要包括:日志采集、日志分析、监控打点、监控大盘、异常报警、链路追踪......
  • 安全:身份验证、认证授权、访问令牌、审计、传输加密、黑产攻击......

微服务架构原理及特征

基本概念

  • 服务(service):一组具有相同逻辑的运行实体。
  • 实例(instance):在一个服务中,每个运行实体就是一个实例。
  • 实例与进程的关系:没有必然联系,一个实例可以对于一个或多个进程(反之不常见)。
  • 集群:服务内部的逻辑划分,包含多个实例。
  • 常见的实例的承载形式:进程、vm、k8s 的pod......
  • 有状态/无状态服务:服务的实例是否存储量可持久化的数据(如测盘文件)。

image.png

  • 服务间通信:在单体中,不同模块的通信只是简单的机器内部函数调用,但对于微服务,服务间通信意味着网络传输。通过网络传输时很难指定目标服务的地址(ip和端口),可以通过新增一个服务注册中心用于存储服务名到服务实例得映射。需要注意服务实例上下线时的操作:1、先注册中心删掉,再下线实例。防止已经下线了但服务中心还有他的映射记录导致调用方看到了进行了无用调用。2.先上线实例再记录在注册中心。原因如上。

流量特征

  • 统一网关入口
  • 内网通信多采用RPC
  • 网状调用链路