微服务是一种软件的体系结构方法,旨在加快开发周期并支持可伸缩性。在这种方法中,软件由小型独立服务组成,这些服务通过架构良好的API进行通信。
整体式与微服务架构
在整体式架构中,所有组件都紧密耦合并作为单个服务运行。在这里,如果应用程序的任何一个组件遇到需求高峰,则必须扩展整个体系结构。此体系结构类型增加了在应用程序中实现新想法的难度级别。
在微服务架构中,每个组件都是一个小型应用程序,具有自己的六边形架构。它是一种体系结构样式,它将应用程序构造为松散耦合且可独立部署的服务集合。
微服务架构的特点
独立
在微服务架构中,每个组件都可以单独更改、升级或替换,而不会影响其他组件的功能。
分散
微服务架构遵循分散的数据管理,其中每个服务都有自己的数据模型视图。
自治
在微服务架构中,无需与其他组件共享任何组件代码或实现。组件之间的任何通信都可以通过明确定义的 API 来完成。
黑盒子
微服务架构的行为类似于黑匣子,因为每个组件都对其他组件隐藏了复杂性的详细信息。
微服务架构的优势
质量
微服务架构还可以提高代码质量,因为整个应用程序都运行在小的、定义明确的组件中。
可伸缩性
在微服务架构中,每个组件都经过适当的解耦,因此可以水平扩展并彼此独立,并且在扩展过程中永远不会面临停机,因为在水平扩展中,更多的组件被添加到现有池中,而不是增加每个组件的容量。
轻松开发
微服务架构使尝试新想法变得容易,并在持续集成和持续交付的帮助下将其回滚,以防发生意外情况。
达观
借助微服务架构,应用程序可以通过降低功能而不是使整个应用程序崩溃来处理总体服务故障。
微服务架构的挑战
迁移
从整体架构迁移到微服务架构的过程非常复杂,需要将发布代码依赖项向下延伸到数据库层。
测试
在微服务环境中,由于服务及其集成不同,测试非常复杂。
监测
在微服务架构中,应用程序被分解为小组件。当出现问题时,很难找到问题的根本原因,因为问题可能不在于发生故障的组件,而在于依赖关系。
无服务器微服务架构
下图显示了无服务器微服务体系结构,其中构建了完整的解决方案,而无需管理任何服务器。这也消除了运行和监视服务器的操作工作。
Lambda 将处理运行和扩展执行所需的一切,以满足具有高可用性的实际需求。Lambda 支持多种编程语言,可以直接从任何 Web 或移动应用程序调用它。
在架构图中,Lambda 与 API 网关 集成。从 API 网关到 AWS Lambda 的同步调用使应用程序能够以无服务器身份运行。AWS Lambda 会将所有数据存储在名为 DynamoDB 的完全托管的 NoSQL 数据库中,所有静态数据都将存储在 S3 存储桶中。
可以说,微服务架构旨在克服企业应用程序中传统整体架构的挑战。它允许任何组织的运营和开发团队之间的协作,从而实现DevOps,并且是当今的首选。
审核编辑:郭婷
-
服务器
+关注
关注
12文章
9109浏览量
85310 -
AWS
+关注
关注
0文章
431浏览量
24347
发布评论请先 登录
相关推荐
评论