dot 速度的未来即将在您所在的城市举办的活动中亮相。

加入我们参加 Redis 发布会

为您的微服务架构选择实时数据层

微服务架构 使得更快地推出新产品、更容易扩展产品以及更好地响应客户需求成为可能。凭借其多种现代数据模型、任何情况下都具有容错能力、多租户隔离以及跨多个环境部署的灵活性,Redis 企业版使开发人员和运营人员能够优化其数据层以适应微服务架构。

https://www.youtube.com/embed/1ybaY27uZA0?si=c2lCcSDcipPAbety

什么是微服务架构?

正如著名微服务专家 Chris Richardson 所定义,微服务架构是一种架构风格,用于将应用程序构建为一组松散耦合的服务,这些服务高度可维护和可测试、独立可部署、由特定业务领域限定并由小型团队拥有。微服务架构能够快速、频繁且可靠地交付大型、复杂的应用程序。

为什么微服务很重要

基于微服务的应用程序能够实现战略性数字化转型和云迁移计划

微服务是一种架构风格,帮助开发团队更快地创建更好的软件,并最大程度地降低应用程序现代化的成本和复杂性。因此,微服务架构已在所有行业中得到采用,用于那些可以合理地被贴上“数字化转型计划”标签的项目,以及用于更平凡但重要的任务,例如引导云部署。

这种架构风格及其相关软件开发文化使微服务开发团队能够按自己的发布周期进行操作、拥抱端到端产品所有权以及采用基于持续集成/持续交付的 DevOps 框架。结果是,企业可以缩短新服务开发的上市时间,通常从以月为单位衡量的项目缩短到以天为单位。

微服务加速数据层云迁移。这是因为它们主要依赖于云原生 NoSQL 数据库。根据 2021 年 IDC InfoBrief 调查,NoSQL 数据库正在取代本地关系数据库,这些数据库并非为云或独立发布周期而构建。

此外,一些组织无法将传统的单体应用程序一次性迁移到云原生。微服务能够将单体架构的子域增量迁移到现代技术栈。

Redis 企业版:微服务的完美解决方案

微服务规模的性能

在微服务环境中,需要实时运行的服务必须弥补网络开销。Redis 企业版为所有 Redis 数据类型和模型提供亚毫秒级的延迟。此外,它可以即时且线性扩展以满足几乎任何所需的吞吐量。

专为容错性和弹性而设计

为了确保您的应用程序具有故障恢复能力,Redis 企业版使用无共享集群架构。它在各个级别都是容错的:在进程级别、单个节点甚至跨基础设施可用区进行自动故障转移。它还包括可调的持久性和灾难恢复功能。

使用快速灵活的数据模型降低复杂性

Redis 企业版允许开发人员为其微服务架构和领域驱动设计选择最适合其性能和数据访问要求的数据模型,同时在单个数据平台上保持多租户部署的隔离。

使用原生 Kubernetes 部署简化操作

Redis 企业版提供统一的操作界面,可减少技术蔓延、简化操作并降低服务延迟。Redis 企业版 Kubernetes 运算符为您提供一致的自动化部署,以降低风险。这使开发团队能够专注于创新和业务价值。

跨云和地理位置适应性

选择数据库运行的位置。Redis 企业版可以在任何地方部署:在任何云平台上、本地或在多云或混合云架构中。

微服务架构的设计模式

微服务查询缓存

隔离或限定上下文是微服务架构的重要特征。作为领域驱动设计的一部分,每个服务都可以拥有一个专用数据库,该数据库具有自己的独特数据模型和服务级别协议性能目标。查询缓存是一种常用缓存模式,用于减少微服务响应时间,它是通过在每个微服务旁边部署 Redis 企业版缓存来实现的,以提供单一业务上下文中所需的数据。(也就是说,它只服务于一个微服务。)

Redis 智能缓存 是一个开源库,它将缓存无缝添加到任何符合 JDBC 的平台、应用程序或微服务中,从而提高查询性能,同时降低操作复杂性 - 并且您无需更改应用程序代码。Redis 企业版支持多种数据模型,可以轻松地进行多租户部署,但仍然保持隔离,所有这些都不会牺牲性能。

了解更多

通过 CQRS 缓存跨域共享数据

微服务需要快速访问数据,但当数十或数百个微服务试图从同一个缓慢的基于磁盘的数据库读取数据时,这可能是一个挑战。跨域数据需要实时可用于每个微服务 - 并且不破坏其专注的业务上下文和目标的范围。

命令查询责任分离 (CQRS) 是微服务架构中的一种关键预取缓存模式,它将读取(查询)和写入(命令)分离。这使应用程序能够将数据写入更慢的基于磁盘的 SQL 数据库,同时使用 Redis 企业版中集成的变更数据捕获 (CDC) 功能预取和缓存该数据,以实现闪电般的快速读取。这样做可以让其他需要数据的微服务立即访问该数据。

了解更多

API 网关缓存用于全局数据

微服务应用程序可以在 API 网关级别缓存全局访问的数据,以分发和加速所有服务访问的数据。通常情况下,这将是会话数据(如用户 ID 和首选项)和身份验证数据(令牌、授权状态、权限)。这使所有服务都可以实时访问频繁需要的数据。结果是什么?在不破坏每个微服务业务上下文范围的情况下减少应用程序延迟。

速率限制(在特定时间段内对 API 请求数量进行计量)也可以使用 Redis 企业版在 API 网关级别实现。这可以防止系统过载并防止 DDoS 攻击。

异步消息用于服务间通信

微服务必须相互通信状态、事件和数据,而不破坏隔离,并且它们必须保持解耦。一个常见的解决方案是将发布-订阅消息代理引入架构 - 也就是说,使服务间通信以事件驱动并最终一致 - 并将微服务之间的每条消息视为事件。

Redis 流 是一种不可变的时间排序日志数据结构,它使服务(生产者)能够发布异步消息,多个消费者可以订阅这些消息。它可以配置为处理不同的交付保证,支持消费者组,并应用其他与 Apache Kafka 主题分区相当的功能。更棒的是,Redis 流有助于在后端创建报告、分析、审核和取证分析。

了解更多

Redis 企业版用于微服务架构的功能

主动-主动复制

微服务架构具有许多连接的服务,但它面临着与单体应用程序相同的性能要求。为了最大程度地减少延迟,数据应该尽可能靠近服务。您还需要确保数据库在出现故障或冲突更新的情况下保持一致。Redis 企业版可以部署为主动-主动、无冲突复制数据库,以处理来自服务多个本地安装的更新,而不会影响延迟或数据一致性,并在出现故障时提供连续性。

多种数据模型

Redis 企业版提供多种数据结构(哈希、字符串、流、列表等)和模型,包括 JSON、搜索、时间序列和图形,让您能够选择最适合您的微服务领域、性能和数据访问要求的数据模型。所有这些都在一个数据平台中。

多租户数据库

在微服务架构数据库设计中,单个 Redis Enterprise 集群可以为许多不同的服务提供数据库, 每个服务都有自己的独立实例,并根据给定的工作负载进行调整。每个数据库实例的部署、扩展和建模都独立于其他实例,同时利用相同的集群环境,在服务之间隔离数据,而不会增加操作复杂性。

跨云灵活

微服务提供了大量的技术灵活性,选择您希望运行数据库的位置也不例外。Redis Enterprise 可以部署在任何地方:在任何云平台上、本地部署或在多云或混合云架构中。它还可以在 Kubernetes、Pivotal Kubernetes Service (PKS) 和 Red Hat OpenShift 上使用。

原生 Kubernetes 容器编排和管理

容器与企业实施微服务应用程序密切相关并有助于实现微服务应用程序。Kubernetes 是容器部署、调度和编排的事实标准平台。Redis 是在容器上运行的顶级数据库技术,在 Docker Hub 上拥有超过 20 亿次启动。适用于 Kubernetes 的 Redis Enterprise Operator 提供:自动可扩展性、持久性存储卷、简化的数据库端点管理和零停机滚动升级。它可以在多个 Kubernetes 平台和云管理服务上使用,包括RedHat OpenShiftVMware Tanzu Kubernetes Grid(以前称为 Enterprise PKS)上游 Kubernetes 以及Azure Kubernetes Service (AKS)Google Kubernetes Engine (GKE)Amazon Elastic Kubernetes Service (EKS)

常见问题解答

  • 什么是微服务?
    • 微服务架构(通常简称为微服务)是指用于开发应用程序的架构风格。微服务允许将大型应用程序分解为更小的独立部分,每个部分都有自己的职责范围。为了响应单个用户请求,基于微服务的应用程序可以调用许多内部微服务来组合其响应。
  • 单体架构和微服务架构有什么区别?
    • 在单体架构中,进程紧密耦合并作为单个可部署的工件运行。虽然这在开始时相对简单,但扩展或修改微服务应用程序的一部分需要更新整个服务,导致效率低下且随着代码库的增长而增加复杂性。
      • 微服务架构涉及一组松散耦合的服务,可以由较小的团队独立更新和扩展。由于单个服务比单个单体应用程序更容易构建、部署和管理,因此微服务可以实现更频繁的部署、数据存储自治和更高的灵活性。
      • 组织正在将整个应用程序迁移到微服务架构,以大幅减少上市时间,更轻松地采用新技术,并更快地响应客户需求。
  • 什么是 Kubernetes?
    • Kubernetes,也称为 k8s,是一个开源编排系统,用于自动执行容器化应用程序的部署、扩展和管理,通常用作微服务和云原生架构的一部分。
  • 什么是 Docker 容器?
    • Docker 容器镜像是轻量级、独立的可执行软件包,其中包含运行应用程序所需的一切。
  • 什么是 API 网关?
    • API 网关是用于 API 管理的软件应用程序,位于客户端和一组后端微服务之间。API 网关充当反向代理,接受来自客户端应用程序的 API 调用,并将此流量转发到相应的服务。