您的位置: 首页 >游戏 >

微服务在现代软件开发中的作用

2022-08-19 13:00:10 编辑:李贞维 来源:
导读 微服务虽然不是一个新颖的概念或实践,但一直在重新定义软件开发在很多方面。微服务有可能取代单片应用程序,并且更符合企业不断变化的业务...

微服务虽然不是一个新颖的概念或实践,但一直在重新定义软件开发在很多方面。微服务有可能取代单片应用程序,并且更符合企业不断变化的业务需求。典型的单片应用程序是一种独立的软件应用程序,其中所有组件部件彼此紧密互连。如果任何组件因任何原因受到影响,则整个应用程序都会受到影响。例如,一个组件的更改可能需要完整的系统回归和完整的部署。单片应用程序被视为不灵活的系统,企业花费大量资源来维护此类应用程序。另一方面,微服务被证明更加灵活和灵活。它们是小型,独立且可重复使用的服务,可以进行修改和独立部署。这使企业可以节省大量投资。虽然不能说微服务普遍使用,但已经有一些令人鼓舞的案例研究。

什么是微服务?

微服务是一种开发单一软件应用程序的架构风格,它结合了小型独立服务。我们的想法是能够以隔离的方式工作或修改每个服务,这样,与单片应用程序的情况不同,整个软件应用程序不会因为更新而受到影响。每个服务都有自己的进程,并以轻量级机制进行通信 - 通常借助HTTP资源Web服务。

要理解微服务架构的特性,将其与单片软件系统进行比较可能是相关的。下表提供了单片和微服务软件系统之间的主要区别。

机制

单片

微服务

处理

将所有功能放在一个过程中。

将各个功能放入单独的服务中。

缩放

在多个服务器中复制monolith。

在需要时,跨服务和重复分发服务。

为什么它会获得人气

开发和管理软件应用程序的微服务方式更符合不断变化的业务需求,这是企业逐渐采用它的最重要原因。在充满挑战和动态的业务场景中,企业需要快速响应不断变化的需求,但单片软件系统不允许他们这样做。微服务更灵活,能够适应不断变化的情况。微服务受欢迎的主要原因包括:

微服务应用程序允许故障隔离。无论何时出现问题,服务的孤立,独立性质都允许与主要软件和评估分离。在修复故障时,软件应用程序不受影响。

企业不需要长期承诺使用特定的技术堆栈,因为它们可以用满足其需求的另一个替换它。

由于服务是孤立和独立的,因此很容易获得知识并开始工作。

什么是架构组件?

微服务架构的架构组件也可称为其定义特征。该体系结构的主要组件如下所述。

简单的请求处理架构

与使用高级系统执行消息路由,编排和应用业务规则等任务的复杂系统(如企业服务总线(ESB))不同,微服务架构以简单的方式处理请求:它接受请求,处理请求并生成响应。

权力下放和灵活性

微服务架构允许企业从任何地方添加独立服务,无论用于开发这些服务的语言或程序如何。这允许软件开发人员根据他们的需要选择最合适的服务。

强大的问题管理

由于该体系结构可能包括几个不断相互影响的不同服务,因此总会出现问题。在这种情况下,有问题的服务可以与整个软件系统隔离,并在软件系统继续平稳运行时进行修复或替换。

这个怎么运作

微服务架构基于其原理工作,可以跨软件应用程序应用,无论技术或平台如何。微服务的工作方式如下所述:

构建它并运行它

它遵循亚马逊的“构建并运行它”的理念。软件应用程序已经构建,并且假设开发团队即使在软件交付后也要负责。这与软件项目的情况不同,在软件项目交付后,开发团队被拆除,责任交给维护团队。在这种情况下,开发团队即使在交付软件后也要承担全部责任。

将软件组件化为服务

虽然微服务架构可以像单片软件系统那样工作 - 调用库 - 它提供了一个独特的功能。库是链接到程序的组件,该程序在内存函数调用的帮助下调用。但是微服务使用的服务是进程外组件,它们通过Web服务或远程过程调用等元素与软件进行通信。

它与SOA有什么不同?

面向服务的体系结构(SOA)是一种基于服务或RESTful Web服务的体系结构,它执行各种功能 - 例如,显示系统状态,创建用户和更新用户数据。SOA允许软件开发人员构建,调用和公开服务,并协调服务以提供解决方案。就像在微服务中一样,SOA中的服务都是独立的,松散耦合的服务。虽然SOA和微服务架构在以服务形式组件化软件应用程序时都有共同的原则,但它们并不相同。SOA和微服务架构之间的主要区别如下所述。(要了解有关SOA的更多信息,请阅读BPM和SOA:他们如何推动业务发展。)

沟通机制

虽然SOA允许您在各种技术堆栈中开发服务并将其部署以开发软件应用程序,但它还要求每个服务使用通用通信机制进行通信。但是,在微服务架构的情况下,没有这样的要求。服务可以独立部署和运营。

沟通失败的影响

在SOA中,企业服务总线用于跨所有部署的服务进行通信。在ESB发生故障的情况下,服务之间的通信可能会中断。显然,完全依赖于ESB。在微服务的情况下,每个服务可以不同地构建,并且在出现故障或错误的情况下,仅该特定服务受影响而不受其他服务的影响。

规模和范围

微服务架构中的每项服务往往都明显小于SOA架构中的服务。微服务是可独立部署的服务,而SOA可以是整体应用程序或小型可部署服务的一部分。

微服务的一些例子

许多着名的组织已经离开了用于微服务架构的单片系统,包括Netflix,eBay,亚马逊,英国政府数字服务,Twitter,PayPal,Soundcloud,卫报等等。

Netflix一直在SOA架构中使用微服务取得了巨大成功。它每天通过来自800多种不同设备的API接收超过10亿个呼叫,然后再拨打5个后端服务。

eBay已经转向微服务,其核心应用程序包括几个较小的自治应用程序。每个小应用程序都为应用程序的不同业务领域执行业务逻辑。

结论

很明显,微服务非常受欢迎,因为它们更符合不断变化的业务场景。但是,需要牢记的是,将多种多样化的服务组合在一起以实现单一目标并非易事。企业仍然需要在系统中管理清晰,及时的沟通,这可能是一个挑战。此外,管理团队或具有管理如此众多不同服务知识的人员可能是一项挑战。考虑到所有因素,微服务架构似乎仍然比单片架构更好。


免责声明:本文由用户上传,如有侵权请联系删除!

精彩推荐

图文推荐

点击排行

2016-2022 All Rights Reserved.平安财经网.复制必究 联系QQ280 715 8082   备案号:闽ICP备19027007号-6

本站除标明“本站原创”外所有信息均转载自互联网 版权归原作者所有。