微服务架构

发布时间 2023-07-10 15:24:56作者: 张家豪

微服务架构

微服务和SOA的关系

  • 是两个不同的架构设计理念,只是“服务”上有交集
  • 微服务粒度更细
  • 服务通信更轻量
  • SOA 多是兼容系统,微服务则是快速交付
  • SOA 适用于庞大的笨重的项目,微服务更适用轻量的互联网项目

微服务的陷阱

  • 服务划分过细,服务关系过于复杂
  • 服务数量过多,团队效率下降
  • 调用链太长,性能下降
  • 调用链太长,问题难以定位
  • 没有自动化支持,无法快速交付
  • 没有微服务治理,服务数量多后管理混乱

最佳实践

服务粒度

  • 开发阶段,三个人管理一个服务
  • 稳定阶段,可以一个人管理多个

拆分方法

  • 基于业务拆分
  • 基于可扩展拆分:成熟和改动的不大的分为稳定服务,经常变动和迭代的分为变动服务
  • 基于可靠性拆分:
    • 避免非核心业务影响核心业务
    • 核心服务高可用更方便
    • 降低高可用成本
  • 基于性能拆分
    • 性能要求高的单独拆分方便提高性能

基础设施

  • 服务发现
    • 自理式
    • 代理式
  • 配置中心
  • 接口框架
  • API 网关
  • 服务路由
  • 服务容错
    • 请求重试
    • 流控
    • 服务隔离
  • 服务监控
  • 服务跟踪
  • 服务安全
  • 自动化测试
  • 自动化部署