资讯专栏INFORMATION COLUMN

微服务架构风格可以降低系统的复杂度吗?

Developer / 315人阅读

摘要:如果极限情况下,每个函数都是一个独立运行的服务,如此一来反倒是增加系统的复杂度。

有人说:使用多个独立的微服务组合成一个复杂的业务系统。如此的话,业务系统整体的复杂度并没有降低。如果极限情况下,每个public函数都是一个独立运行的服务,如此一来反倒是增加系统的复杂度。如此看来,微服务只不过是解决了部分功能的扩展性的问题。和SOA架构或者monolic相比,并没有根本性的改变。

事实并非如此。

分布式意味着复杂性的挑战,以静止的观点来看,也就是系统长期没什么大变化这种情况,采用微服务架构通常会增加系统整体的复杂度,得不偿失。

然而有个词叫做“架构腐化”,系统不可能静止不动,随着业务的成长,市场的变化,系统总要不断增加新的能力,时间长了,最初简单高效的架构,往往就会变得极其复杂,臃肿不堪,即便最初的规范、分层都合理了,可扩展性、可用性、性能带来的复杂性也是难以避免的,祖传代码牵一发而动全身,改一行修半年该有多可怕。这也是熵增原理的一种体现。

而采用微服务架构,边界和职责明确了,模块高内聚低耦合,系统熵增就可以变慢,而且系统分拆之后,对于负责单个微服务的小团队来说,工作也变得很简单多了。这都是强调服务总线(ESB)的 SOA 和单体架构所不能的。

诚然微服务架构的正常运转需要做很多事情,比如:

服务注册/发现:服务实例的网络地址是动态分配的,服务实例的配置也经常变化,没有这个就不好玩了。

持续部署:功能越多,构建和部署时间越多,再小的修改都需要部署,要是手动部署的话,这人生就看到头了。

异常定位与修复:服务众多链路复杂的时候,这和在茫茫人海中找到那个他/她有一拼了。

高可用:服务之间确实相对独立,资源也隔离,减少局部故障对整体的影响,但是有调用和依赖,不做好每一个服务的高可用,就要等着雪崩了。

但这些是基础设施层面的工作,只要有一个好的微服务基础设施,业务侵入性很小,尽可能支持自动化,就不是问题了。网易云轻舟微服务的设计,就是希望解决微服务应用生命周期的一切问题。

所以,微服务架构也不仅仅解决部分功能扩展性的问题,对于系统可用性的保证,沟通成本的减少,支持技术选择的多样性,到研发效率的提升,微服务可以发挥的作用还是非常巨大的。

优化业务系统的复杂度,应该在于保证业务响应能力、业务创新能力,同时提升 IT 效率,很多互联网公司以及传统企业都在搞微服务,当然是因为搞微服务是有这种好处的。

文章来源: 网易云社区

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25406.html

相关文章

  • 服务与Spring Cloud概述

    摘要:微服务架构概述应用架构的发展应用是可独立运行的程序代码,提供相对完善的业务功能。阿里开源的是的典型实现。它目前由官方开发维护,基于开发,提供一套完整的微服务解决方案。 微服务与Spring Cloud 随着互联网的快速发展, 云计算近十年也得到蓬勃发展, 企业的IT环境和IT架构也逐渐在发生变革,从过去的单体应用架构发展为至今广泛流行的微服务架构。 微服务是一种架构风格, 能给软件应用...

    scwang90 评论0 收藏0
  • 如何快速搭建一个服务架构

    摘要:如何快速搭建一个微服务架构上图异步通信方式通常异步的生产者消费者模式,通过等异步消息通讯协议规范。数据的去中心化,进一步降低了微服务之间的耦合度,不同服务可以采用不同的数据库技术等。 什么是微服务? 微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服...

    MockingBird 评论0 收藏0
  • 什么是服务架构

    摘要:数据的去中心化,进一步降低了微服务之间的耦合度,不同服务可以采用不同的数据库技术等。微服务架构是持续交付的巨大推动力,允许在频繁发布不同服务的同时保持系统其他部分的可用性和稳定性。 什么是微服务? 微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务...

    IntMain 评论0 收藏0
  • 服务实战:从架构到发布(一)

    摘要:微服务集成服务间通信微服务架构下,应用的服务直接相互独立。微服务架构倾向于降低中心消息总线类似于的依赖,将业务逻辑分布在每个具体的服务终端。 引言:微服务是当前软件架构领域非常热门的词汇,能找到很多关于微服务的定义、准则,以及如何从微服务中获益的文章,在企业的实践中去应用微服务的资源却很少。本篇文章中,会介绍微服务架构(Microservices Architecture)的基础概念,...

    libin19890520 评论0 收藏0
  • 服务实战:从架构到发布(一)

    摘要:微服务集成服务间通信微服务架构下,应用的服务直接相互独立。微服务架构倾向于降低中心消息总线类似于的依赖,将业务逻辑分布在每个具体的服务终端。 引言:微服务是当前软件架构领域非常热门的词汇,能找到很多关于微服务的定义、准则,以及如何从微服务中获益的文章,在企业的实践中去应用微服务的资源却很少。本篇文章中,会介绍微服务架构(Microservices Architecture)的基础概念,...

    HtmlCssJs 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<