《系统设计》微服务不是银弹

前言

微服务,是系统设计的一种架构风格。

曾经有一段时间,微服务被认为是系统设计的黄金法则。

但是,正如 Brooks 的名言:软件工程没有银弹

微服务,自然不是银弹。

单体架构 vs 微服务架构

在这里插入图片描述

在这里插入图片描述

比较单体架构微服务架构
项目结构所有模块在一个项目中一个模块对应一个项目
服务调用进程内调用RPC/HTTP
开发团队所有模块由一个大的开发团队完成一个模块对应一个开发团队
开发模式瀑布式开发敏捷开发,DevOps
水平伸缩以整个系统为维度加机器,浪费了不必要的资源以某个模块为维度加机器,效果更好

微服务的好处 vs 坏处

好处:

  • 解耦
  • 职责分离
  • 独立开发,独立升级,可以选择不同的技术栈
  • 方便水平伸缩,可以对负载高的模块单独增加机器
  • 无状态 (Stateless)

坏处:

  • 微服务拆分多,并且互相调用,增加了系统复杂度
  • 调用链路变长,延迟增加
  • 异常处理复杂,比如某个微服务处理失败,需要考虑前面成功的微服务如何回滚
  • 问题定位复杂
  • 监控复杂
  • 资源管理复杂

参考资料

  1. https://blog.bytebytego.com/i/96603172/is-microservice-architecture-the-silver-bullet
  2. https://blog.bytebytego.com/i/88429916/what-are-the-differences-between-monolithic-and-microservice-architecture
  3. https://www.zhihu.com/question/359630395
  4. https://martinfowler.com/articles/microservices.html
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

plattoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值