微服务简述

微服务

原文:https://martinfowler.com/articles/microservices.html
翻译自百度翻译

在过去的几年中,“微服务体系结构”一词已经出现,用来描述将软件应用程序设计为独立可部署服务套件的一种特殊方式。虽然没有对这种体系结构风格的精确定义,但是围绕业务能力、自动化部署、端点中的智能以及语言和数据的分散控制,组织有一些共同的特征。

“微服务”——软件架构拥挤街道上的又一个新名词。虽然我们的自然倾向是轻蔑地一瞥过去,但这一点术语描述了一种我们发现越来越有吸引力的软件系统风格。在过去的几年中,我们已经看到许多项目使用这种样式,到目前为止,结果都是积极的,以至于对于我们的许多同事来说,这正成为构建企业应用程序的默认样式。然而,遗憾的是,没有太多的信息可以概括出微服务的风格以及如何做到这一点。

简而言之,微服务体系结构风格[1]是一种将单个应用程序开发为一套小型服务的方法,每个服务都在自己的流程中运行,并与轻量级机制(通常是HTTP资源API)通信。这些服务是围绕业务能力构建的,可以通过完全自动化的部署机制独立部署。对这些服务的集中管理是最低限度的,可以用不同的编程语言编写,并使用不同的数据存储技术。

要开始解释微服务风格,将其与单片式风格进行比较是很有用的:单片式应用程序作为单个单元构建。企业应用程序通常由三个主要部分组成:客户端用户界面(由用户计算机上浏览器中运行的HTML页面和JavaScript组成)、数据库(由插入到公共数据库管理系统(通常是关系数据库管理系统)中的许多表组成)和服务器端应用程序。服务器端应用程序将处理HTTP请求,执行域逻辑,从数据库中检索和更新数据,并选择和填充要发送到浏览器的HTML视图。此服务器端应用程序是一个整体-单个逻辑可执行文件[2]。对系统的任何更改都涉及到构建和部署服务器端应用程序的新版本。

这种单块服务器是构建这样一个系统的自然方法。处理请求的所有逻辑都在一个进程中运行,允许您使用语言的基本特性将应用程序划分为类、函数和名称空间。通过一些注意事项,您可以在开发人员的笔记本电脑上运行和测试应用程序,并使用部署管道来确保正确测试更改并将其部署到生产中。通过在负载均衡器后面运行许多实例,您可以水平地缩放整体。

单片应用程序可能会成功,但越来越多的人对它们感到失望,尤其是随着越来越多的应用程序部署到云端。变更周期被捆绑在一起——对应用程序的一小部分所做的变更,需要重新构建和部署整个整体。随着时间的推移,很难保持一个好的模块化结构,这使得很难保持只影响该模块中一个模块的更改。扩展需要扩展整个应用程序,而不是部分需要更大的资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值