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

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

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

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

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

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

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

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

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

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

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

时间: 2024-10-14 05:33:11

单体应用与微服务优缺点辨析的相关文章

使用 Dubbo 对遗留单体系统进行微服务改造

摘要: 在 2016 年 11 月份的<技术雷达>中,ThoughtWorks 给予了微服务很高的评价.同时,也有越来越多的组织将实施微服务作为架构演进的一个必选方向.只不过在拥有众多遗留系统的组织内,将曾经的单体系统拆分为微服务并不是一件容易的事情. Credit: Justin Kenneth Rowley. You can find the original photo at flickr. The microservices style of architecture highligh

单体架构还是微服务架构,这是个问题?

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 微服务架构现在越来越流行,那么是不是就意味着单体架构不再成为我们的选择了呢?个人认为这个要依情况而定. 现在谈及微服务架构的文章.演讲随处可见,似乎所有系统的架构都开始尽情拥抱微服务架构,包括笔者前久为一个异构电商平台系统设计的架构也选用了这种风格.然而,我们在选择微服务架构之前,一定要问一句"你现在面对的系统,微服务架构是一个好的选择吗?".当然,这个问题也是我这几天在思考的.

华为架构师8年经验谈:从单体架构到微服务的服务化演进之路

华为架构师8年经验谈:从单体架构到微服务的服务化演进之路 目录技术文章2016年6月28日 转自:http://www.58maisui.com/2016/06/28/a-327/?ref=myread 本次分享的大纲如下: 传统应用开发面临的挑战 服务化实践 服务化不是银弹 服务化架构的演进方向 一 .传统应用开发面临的挑战 挑战1– 研发成本高 主要体现在如下几个方面: 代码重复率高 在实际项目分工时,开发都是各自负责几个功能,即便开发之间存在功能重叠,往往也会选择自己实现,而不是类库共享,

从单体架构到微服务的服务化演进之路

本次分享的大纲如下: 传统应用开发面临的挑战 服务化实践 服务化不是银弹 服务化架构的演进方向 一 .传统应用开发面临的挑战 挑战1– 研发成本高 主要体现在如下几个方面: 代码重复率高 在实际项目分工时,开发都是各自负责几个功能,即便开发之间存在功能重叠,往往也会选择自己实现,而不是类库共享,主要原因如下: 从技术架构角度看,传统垂直架构的特点是本地API接口调用,不存在业务的拆分和互相调用,使用到什么功能就本地开发,非常方便,不需要过度依赖于其它功能模块: 从考核角度来看,共享很难推行.开发

系列免费课程汇总(Java、单体应用、微服务、物联网、SaaS)

概述 2020年春节尽在眼前,又忙碌了一年的你一定有很多收获:是升职加薪,还是收获爱情?是买房置业,还是新添人口? 我在2019年的最大收获是:我的第二枚千金诞生,使我顺利加入富豪行列! 新年伊始我们要回顾过去,总结过去一年的成就与挫折,我们还要放眼未来,为新一年设定一个小目标! 2020年我要为大家分享一系列Java免费课程,助力大家成长为Java领域的全栈工程师.架构师! 课程将以视频教学形式开展,课件及视频教程将陆续更新到我们的 官方站点 及 博客园 中,感兴趣可关注. 官方站点 为了配合

微服务优缺点

优点: 每个服务足够内聚,足够小,代码容易理解这样能够聚焦一个指定的业务功能或业务需求. 开发简单,开发效率提高,一个服务可能就是专一的只干一件事情. 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的. 微服务能够被小团队单独开发. 微服务能使用不同的语言开发. 易于和第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins.Hudson.bamboo. 微服务易于被一个开发人员理解.修改和维护,这样小团队能够更关注自己的工作成果.无需通过

微服务与单体服务

什么是微服务? 微服务是一种系统架构的设计风格,主旨是将原本复杂的系统拆分成多个独立的小型服务,每个服务维护自身的业务逻辑.数据处理及部署,服务与服务之间通过简单的通信协议进行通信(比如restful API),不要求每个微服务使用同一种编程语言编写. 微服务优缺点? 可参考 https://blog.csdn.net/Leon_cx/article/details/81487547 优点归纳为以下几点: 缺点: - 运维层面上,运维需要维护的服务更多了- 问题难定位,单体项目日志集中在一起,出

【CHRIS RICHARDSON 微服务系列】使用微服务重构单体应用-7

编者的话 |本文来自 Nginx 官方博客,是「Chris Richardson 微服务」系列的最后一篇.第一篇介绍了微服务架构模块,并且讨论了使用微服务的优缺点.随后的文章讨论了微服务的不同方面,包括使用 API 网关.进程间通讯.服务发现.事件驱动的数据管理,以及部署微服务.本篇将讨论从单体应用迁移到微服务的策略. 作者介绍:Chris Richardson,是世界著名的软件大师,经典技术著作<POJOS IN ACTION>一书的作者,也是 cloudfoundry.com 最初的创始人

微服务和单体架构的区别以及springClould版本的说明

一.单体架构和微服务特点 二.springcloud与dubbo比较 三.版本规划 原文地址:https://www.cnblogs.com/histlyb/p/8410016.html