单体应用与微服务优缺点辨析

前久由于需要做一个异构系统集成的架构设计,所以深入研究了下微服务架构,今天由于家里断网(只能用手机热点)所以分享一篇OneNote里面摘录的文章。

微服务架构(MSA)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非在具体代码上应用SOLID原则的设计原则。个人我认为微服务更多的是一种架构风格,也可以看作是一种粒度更细的SOA。在InfoQ上有很多介绍微服务架构的文章,今天要分享的是一篇对比单体应用和微服务的文章,所谓单体应用和微服务可以通过下图来理解:

monolithic_ms

阅读这篇文章后,可以帮助我们对微服务的概念和优缺点有一个比较清晰的认识。

这篇文章首先讲述了单体应用的优点:为人熟知;IDE友好;便于共享;易于测试;容易部署。

接着例举了一些单体应用的缺点:不够灵活;妨碍持续交付;受技术栈限制;技术负债。

由于微服务具有诸多特点:领域驱动设计;单一职责原则;明确发布接口;独立部署、升级、扩展和替换;可以异构多种语言混合;轻量级通信。

所以,引入微服务可以带入如下好处:易于开发、理解和维护;比单体应用启动快;局部修改很容易部署,有利于持续集成和持续交付;故障隔离,一个服务出现问题不会影响整个应用;不会受限于任何技术栈。

当然要成功实施微服务,具备良好的开发运维团队才有保证。

更多的解释和说明可以“阅读原文”,或者在InfoQ中文站上搜索“微服务”来获取更多相关文章。

原文地址:http://www.infoq.com/cn/news/2015/04/single-app-micro-service

posted @   朱永光  阅读(7104)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示