术语微服务架构已经存在了几年,用于描述将软件应用程序设计为一组可独立部署的服务的特定方式。 这些服务使用 API 相互通信。 微服务架构中的一些常见特征包括:失败设计 围绕公司能力组织 去中心化数据管理 去中心化治理 可扩展设计 基础设施自动化 产品而非项目 通过服务组件 为什么要使用基于微服务的 Web 应用程序?微服务旨在解决基于单体架构的巨大应用程序引起的问题。 它被大型网站广泛使用,以实现以下好处:与大型复杂的单体应用程序相比,开发人员可以使用更小的代码库。高度定义的开发人员职责,即团队可以分配应用程序组件以加快代码审查并进行快速更新。基于微服务的 Web 应用程序将不再依赖于库或编程语言。 因此,开发人员可以选择最适合他们需求的一种。在不为所有内容创建多个实例的情况下,独立扩展每个服务会更容易。通过使用微服务,持续交付将变得更加容易。您可以为微服务架构选择不同的数据库或存储来分散数据。服务中的错误或错误不会停止整个系统,因为每个组件或服务都保留在其容器中。如何设计基于微服务的 Web 应用程序 在设计基于微服务架构的 Web 应用程序时,需要考虑
几个关键点。 这些关键点包括应用程序规范、设计微服务的最佳实践、十二因素方法、在容器中部署服务的价值以及使用 Kubernetes 进行编排。 所以让我们开始吧!应用规范 应用的 Web 应用程序将通过执行业务逻辑、访问数据库、然后返回 JSON、XML 或 HTML 响应来处理请求。 因此,该应用程序必须支持多个客户端,包括传统 Web 应用程序、移动 Web 应用程序、单页应用程序和本地移动应用程序。 它还应该有 API 来使用来自第三方网站或应用程序的数据。应用 传真列表 程序应主要包含用户界面 (UI) 组件、业务逻辑或域、数据库访问组件和应用程序集成逻辑。 此外,应用程序应具有跨多个基础设施环境的高可扩展性和可部署性。设计微服务的最佳实践 通过遵循设计微服务的最佳实践,您可以轻松地维护、扩展和部署您的应用程序。 请记住,并非所有给出的最佳实践都与您的应用程序要求相关。每个微服务都应该有一个单一的应用能力。 团队应明确每个部门的职责和界限。 除此之外,您需要考虑为您的 Web 应用程序提供的要求。即
使服务失败,微服务也应该响应请求的客户端。当您在微服务上更新或添加功能时,更改不应影响客户端,并且 Rest API 尊重向后兼容性。设计应有助于故障排除和监控。 微服务必须指定 API 网关、客户端和微服务之间的通信协议。了解十二因素应用方法 应用程序开发的 12 要素应用程序方法是一套用于构建云原生和软件即服务应用程序的指南和规则。 根据 12 要素方法,微服务应遵循以下准则。 这里的规则包括代码库、依赖项、配置、支持服务、流程、端口绑定、并发、构建、发布和运行、禁用、日志、管理流程以及开发和生产平价。在容器中部署微服务的重要性 微服务开发完成后,应该是容器化的。 在其单独容器中运行的微服务不会影响部署在单独容器中的微服务。现在你可能在想什么是容器,对吧? 容器是用于开发、发布和部署应用程序的标准软件单元。 像 Docker 这样的容器引擎用于管理容器。 这些容器引擎提供了将应用程序依赖项捆绑到容器中所需的工具。Docker 可用于在容器中开发、部署和运行微服务应用程序。 带有微服务的 Docker 将具有以下特点。轻量级:由于 docker 共享其核心操作系统并且不需要实例的操作系统,因此微服务作为轻量级进程运行。便携:使用 docker,微服务变得可移植,可以在任何地方运