杂的应用程序时,编写单体应用程序的做法变得越来越成问题,微服务就应运而生。
传统上,应用程序是作为单体构建的,所有代码都集中在一个大的代码库中。由于没有明确区分不同功能,因此更新应用程序的一部分时,可能会无意中影响到完全不相关的功能。即使进行简单的更改,你也必须重新部署整个应用程序,如果出现问题,则所有内容都会受到影响,而不仅仅是要被更新或扩展的组件。
针对这个问题,我们可以通过将单体架构拆分成模块(半独立组件)来解决,尽管它可能比实现微服务简单得多,但它从未真正流行起来。
面向服务的体系结构(SOA)吸引了很多人,但很大程度上失败了,主要是因为它留下了许多未解决的问题,例如如何正确拆分服务。基于微服务的体系结构是一种更具说明性的SOA类型,它源于现实世界的用例,并已被众多组织成功采用。
微服务只不过是一种模块化架构,不同模块间通过网络进行通信。
什么是微服务?
微服务是小型的自治应用程序组件,它们一起构成一个应用程序。他们从SOA继承了基本的操作模型,但是以一种更具说明性的方式对其进行了扩展。微服务通常被认为是一个独立部分,由一个团队维护。
微服务为什么重要?由上文可知,要更新应用程序,我们可以独立更新和部署微服务,而不必重新部署整个应用程序。它们还允许单个微服务团队完全专注于单个业务流程,而无需了解整个应用程序。
为此,微服务具有以下属性:
-
松耦合:每个服务都是自治的,只能松散地连接到系统的其余部分。这意味着它具有自己的生命周期,并且可以独立部署,更新,扩展和删除。
-
高内聚性:具有相关行为的代码组合在一起。通过将所有相关行为分组在一起,工程师仅在需要更改特定行为时才在一个地方更新代码。
-
信息隐藏:每个微服务仅共享其他服务所需的数据,并仅隐藏与其自己的流程相关的数据。数据共享可能会无意间导致耦合,因此应始终谨慎。
为了充当一个有凝聚力的应用程序,所有这些不同的自治服务都通过网络接口进行通信。这为大量通信带来了新的挑战。顺便说一下,这就是服务网格发挥作用的地方。
现在我们知道什么是微服务,让我们探究组织为什么采用微服务。
微服务的好处
无论是通过使服务与团队保持一致来解决“开发人员问题”,还是降低采用新技术的风险,或是减轻部署的复杂度和提高可伸缩性,采用微服务都会带来很多好处。让我们仔细看看:
-
自治团队:微服务允许小型团队完全拥有服务的整个生命周期。这样可以提高责任心,代码质量和工作满意度。对于大多数大型组织而言,
(编辑:葫芦岛站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|