架构师 0 期 | 微服务的思考和认识
啥是微服务
微服务是为大型系统而生的。
微服务是一种软件架构的风格。将大型复杂的系统,依据模块进行拆分,分别部署,模块间进行通信。让一个大型系统变得小巧,方便多人维护开发。
微服务只是一种软件架构风格,把单一职责的小型功能模块化,独立部署,对外提供类似的功能。
微服务架构设计理念通过小而美的业务拆分,通过分而自治来实现复杂系统的优雅设计实现。
为啥会有微服务
这得从软件的发展规律来说。
随着业务的快速增长,系统会变得越来越复杂,系统的可维护性和可扩展性就会成为系统开发的瓶颈。就需要在系统架构上面寻找出路。
当业务初期,单体架构就能hold住,可以快速堆出需要的业务功能,快速开发、测试、上线交付,部署简单,一个服务就搞定一切,验证商业逻辑。
但是随着业务迅速发展,单体架构的应用就会暴露一些问题。
代码量变大,参与项目的开发者人数也越来越多,业务变得复杂。
应用变得臃肿,可维护性、扩展性都开始变差,维护成本开始变高。
参与开发的成员开始觉得维护吃力,改一个东西,需要先了解清楚相关的全部逻辑,各种依赖,才敢动手,每次修改代码都心惊胆战。
由于项目庞大,编译一次要几十分钟,甚至几个小时,大量的时间都是在等待,去喝杯水,上个厕所回来之后,代码依旧还在编译。本来不多的工作量只能熬成996、007。而这本该可以避免的。
系统的可靠性也会变差,比如搞秒杀活动之类的时候,过量的请求可能导致部分业务挂了,但是因为是一个服务,就会导致整个系统全部挂掉。
扩展性也会受到限制,因为只能作为一个整体进行部署,不能根据具体业务类型技术选型,或者硬件进行选择,可能某些业务适合计算型的,也有些可能适合IO型的,就在硬件上不能更好的针对他们做出调整。
针对以上问题,微服务慢慢演化而来。
微服务的好处
计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。
版权声明: 本文为 InfoQ 作者【刁架构】的原创文章。
原文链接:【http://xie.infoq.cn/article/88ff8f86a531976ff0fac3f97】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论