微服务和单体架构优缺点(微服务架构的缺点)

本文目录
微服务架构的缺点
介绍微服务架构好处的文章比较多,最近交付的一个项目发现的缺点也比较明显,给方案设计,性能,测试,运维,问题排查,数据管理,配置管理,事务管理,研发管理都带来了不少挑战。如果使用不慎,研发成本,交付成本和运维成本都可能会大幅度上升。
自己的体会,不能简单通过技术角度看待微服务化,为了微服务而微服务潜在风险很大,不好的微服务切分会带来不必要的沟通路径,而沟通路径增加会带来更大的复杂度,这违背了微服务设计的初衷。微服务“入门容易,掌握难,出门难”。
建议的原则是业务驱动,设计保障,演进式迭代,保守治疗的方式。搞不清楚,有争议的地方先尽量不要拆,如果确实要拆,要经过业务分析后慎重设计,把真正相对独立的部分拆分出来,可以借鉴DDD的方式。拆了以后要观察微服务的接口是否稳定,针对业务需求的变更微服务的模块是否可以保持相对稳定,是否可以独立演进。
正好看了一个国外帖子,总结的不错,翻译并增加了自己的一些体会:
以下是微服务架构的缺点:
架构演进应该还是需要业务驱动和演进式迭代的,重新看了Martin Fowler的那篇
Microservices 经典之作。再来体会一下这句话会有不同的体验:
“One reasonable argument we’ve heard is that you shouldn’t start with a microservices architecture. Instead begin with a monolith , keep it modular, and split it into microservices once the monolith becomes a problem.”
不要一上来就以微服务架构做为起点。相反,要用一个单块系统做为起点,并保持其模块化。当这个单块系统出现了问题后,再将其分解为微服务。
另外看到一篇文章《Microservices - Not A Free Lunch!》,也提出了微服务的几个潜在问题:
微服务架构知识总结
一、单体架构
1. 单体架构的简介
2. 单体架构的架构图
3. 单体架构的优点
4. 单体架构的缺点
二、微服务架构
1. 微服务架构的简介
2. 微服务架构的架构图
3. 微服务架构的设计原则
4. 微服务架构的优点
5. 微服务架构的缺点
6. 微服务架构的拆分思路
6.1 横向拆分:根据业务来拆分
6.2 纵向拆分:根据层次来拆分
7. 微服务架构的选择
7.1 Dubbo(RPC)
7.1.1 Dubbo
7.1.2 RPC
7.2 SpringCloud(HTTP)
7.2.1 SpringCloud
7.2.2 HTTP
7.3 小结
8. 微服务架构的基本概念
8.1 服务提供者(Provider)
8.2 服务调用者(Consumer)
与单块架构相比较,微服务架构有哪些特点
这就是三十年河东、三十年河西的轮流转。
当年提出系统结构要内聚,接口要简洁清晰;如今的微服务正好相反。
所谓微服务就是这个系统的每个模块都是自成一体的,可以认为其拥有不依赖其他模块的能力。这样一来,其可以独立向外提供服务,甚至可以独立存在。
我举个例子,你就懂了:一个网站,又有登录、又有新闻、又有BBS、又有邮箱,按说这是一个整体,无论登录权限,还是浏览、交互都是机体的一部分。不能割裂。但在微服务体系下,这些都是独立的,你可以理解为新闻是一个独立的割裂存在,BBS是一个独立的割裂存在,邮件是一个独立的割裂存在。你懂了吗?无论是界面、还是业务逻辑、还是数据存取都是各自的独立一套。不是仅界面割裂,是完全的从上到下的割裂。我觉得例子功能粒度大,也可以功能粒度更小。
你可以想想,每个模块都可以独立存在,对外提供功能。甚至其他模块不存在,某模块也可以独立存在,这不是小系统是什么?而每个这种模块堆起来一个所谓的系统。那这中间为了保障每个模块独立存在的那些功能又得重复多少啊!?你想想吧,每个模块都有一套维持其存在的这种机制,每个模块都有这么一堆。这不是重复实现吗?这还哪有一个系统的概念哪!?简直就是功能超市。所以,这怎么说呢?反正就是这么个玩意儿吧!

更多文章:
diverse culture课件(英语邮件范例:旅游英语怎么表达)
2026年3月2日 00:30
字符串全排列(abcdefgh由这八个字符构成的全排列字符串,要求不能出现以下子串:abc ,de,gh.求能有)
2026年3月9日 23:15
javascript 字符串转数字(如何用JavaScript对字符串进行解析并计算出结果)
2025年5月28日 03:00
如何使用u盘安装linux系统(怎么用u盘安装过linux详细步骤!)
2026年1月10日 17:45
domestic abuse only happens(帮我翻译一下这段英语 谢谢啦 ~!!!!!!!!!!!!!!!!!!!)
2026年4月17日 08:45
settimeout怎么停止(window.setTimeout 停止 取消)
2025年6月10日 15:15
word如何设置图片居中?网页中如何用HTML/CSS实现文字居中于图片
2025年6月28日 16:15
php教程视频谁的好(哪里的php视频教程不错我想自学php)
2026年5月11日 14:15
unity 命名空间(为什么unity无法将脚本添加到空的对象)
2026年1月21日 21:00
decimal在python(python字符的精度不够,用什么填充)
2026年8月13日 02:15
禁止iframe嵌套(https页面iframe嵌套http的页面,弹出警告,怎么解决)
2026年5月5日 09:45












