视频

了解更多
微服务架构可以更快地发布新产品,更轻松地扩展,并更好地响应客户需求。凭借其多种现代数据模型、任何场景下的容错能力、实现隔离的多租户以及跨多种环境部署的灵活性,Redis 使开发人员和运维人员能够针对微服务架构优化其数据层。
正如著名的微服务专家 Chris Richardson 所定义的那样,微服务架构是一种将应用程序构建为一组松散耦合的服务(这些服务高度可维护和可测试、可独立部署、受特定业务领域限制并由小型团队拥有)的架构风格。微服务架构能够快速、频繁且可靠地交付大型复杂应用程序。
基于微服务的应用支持战略性的数字化转型和云迁移计划
微服务是一种架构风格,它帮助开发团队更快地创建更好的软件,并最大限度地降低应用程序现代化的成本和复杂性。因此,微服务架构已在各行各业得到采用,既适用于那些可被称为“数字化转型计划”的项目,也适用于更普通但重要的任务,例如启动云部署。
这种架构风格及其相关的软件开发文化使微服务开发团队能够按照自己的发布周期运行,拥抱端到端的产品所有权,并采用基于持续集成/持续交付的 DevOps 框架。结果是,企业可以缩短新服务开发的上市时间,通常从以月为单位的项目缩短到以天为单位。
微服务加速了数据层云迁移。这是因为它们主要依赖于云原生的 NoSQL 数据库。根据 2021 年 IDC InfoBrief 调查显示,NoSQL 数据库正在取代那些并非为云或独立发布周期而构建的本地关系型数据库。
此外,一些组织无法一次性将其遗留的单体应用完全迁移到云原生环境。微服务支持将子域从单体架构逐步迁移到现代技术堆栈。
在微服务环境中,需要实时运行的服务必须补偿网络开销。企业级 Redis 为所有 Redis 数据类型和模型提供亚毫秒级延迟。此外,它可以即时、线性地扩展到几乎任何所需的吞吐量。
为了确保您的应用程序具有故障恢复能力,Redis 采用无共享集群架构。它在各个层面都具有容错能力:在进程级别、单个节点级别以及跨基础设施可用区都提供自动化故障转移。它还包括可调整的持久化和灾难恢复功能。
Redis 允许开发人员选择最适合其微服务架构和领域驱动设计性能及数据访问需求的数据模型,同时通过在单个数据平台上的多租户部署保持隔离。
Redis 提供统一的运维界面,减少技术蔓延,简化运维,降低服务延迟。Kubernetes 的 Redis Operator 提供一致的自动化部署,以降低风险。这使得开发团队能够专注于创新和业务价值。
选择您的数据库应该在哪里运行。Redis 可以在任何地方部署:在任何云平台、本地环境,或在多云或混合云架构中。
隔离或边界上下文是微服务架构的一个重要特征。作为领域驱动设计的一部分,每个服务都可以拥有一个专用的数据库,该数据库具有自己独特的数据模型和服务级别协议性能目标。查询缓存是常用的缓存模式,用于减少微服务响应时间,其工作原理是在每个微服务旁边部署一个 Redis 缓存,以交付单个业务上下文所需的数据。(也就是说,它只为一个微服务提供服务。)
Redis 智能缓存是一个开源库,它可以无缝地为任何符合 JDBC 的平台、应用程序或微服务添加缓存,提高查询性能,同时降低运维复杂性——而且您无需更改应用程序代码。 Redis 支持多种数据模型,这些模型可以轻松地进行多租户部署,同时保持隔离,所有这一切都不会牺牲性能。
微服务应用程序可以在 API 网关级别缓存全局访问的数据,以分发并加速所有服务访问的数据。这通常包括会话数据(例如用户 ID 和偏好设置)以及身份验证数据(令牌、授权状态、权限)。这使得所有服务都能实时获取常用数据。结果是什么?在不打破每个微服务业务上下文边界的情况下,降低应用程序延迟。
速率限制,即在特定时间段内计量 API 请求的数量,也可以使用 Redis 在 API 网关实现。这可以防止系统过载并阻止 DDoS 攻击。
微服务必须在不破坏隔离的情况下相互通信状态、事件和数据,并且必须保持解耦。一个常见的解决方案是将发布-订阅消息代理引入架构——即,使服务间通信事件驱动并最终保持一致——并将微服务之间的每条消息视为一个事件。
Redis Streams 是一种不可变的、按时间顺序排列的日志数据结构,它使服务(生产者)能够发布异步消息,多个消费者可以订阅这些消息。它可以配置为处理不同的交付保证,支持消费者组,并应用其他与 Apache Kafka 主题分区相当的功能。更棒的是,Redis Streams 有助于在后端创建报告、分析、审计和取证分析。
微服务架构包含许多相互连接的服务,但它面临与单体应用相同的性能要求。为了最大限度地减少延迟,数据应尽可能靠近服务。您还需要确保数据库在发生故障或更新冲突时相互保持一致。Redis 可以部署为主-主、无冲突的复制数据库,以处理来自您服务的多个本地安装的更新,而不会损害延迟或数据一致性,并在发生故障时提供连续性。
Redis 提供了多种数据结构(哈希、字符串、流、列表等)和模型,包括 JSON、搜索、时序和图,让您可以选择最适合您的微服务领域、性能和数据访问需求的数据模型。所有这一切都在一个单一的数据平台中。
在微服务架构数据库设计中,一个单一的 Redis 集群可以为许多不同的服务提供数据库,每个服务都有自己独立的实例,并针对给定的工作负载进行了调优。每个数据库实例都可以独立于其他实例进行部署、扩展和建模,同时利用相同的集群环境,在服务之间隔离数据而不会增加运维复杂性。
微服务提供了极大的技术灵活性,选择数据库运行位置也应如此。Redis 可以部署在任何地方:任何云平台、本地环境,或多云或混合云架构中。它也支持 Kubernetes、Pivotal Kubernetes Service (PKS) 和 Red Hat OpenShift。
容器与企业实施微服务应用密切相关并提供帮助。Kubernetes 是容器部署、调度和编排的事实标准平台。Redis 是运行在容器上的顶级数据库技术,Docker Hub 下载量超过 20 亿次。Kubernetes 的 Redis Operator 提供:自动扩展性、持久存储卷、简化的数据库端点管理和零停机滚动升级。它支持多种 Kubernetes 平台和云托管服务,包括 RedHat OpenShift、VMware Tanzu Kubernetes Grid(前身为 Enterprise PKS)、上游 Kubernetes,以及 Azure Kubernetes Service (AKS)、Google Kubernetes Engine (GKE) 或 Amazon Elastic Kubernetes Service (EKS)。