【虹科干货】如何构建弹性、高可用的微服务?

这篇具有很好参考价值的文章主要介绍了【虹科干货】如何构建弹性、高可用的微服务?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于微服务的应用程序可实现战略性数字转型和云迁移计划,对于开发团队来说,这种架构十分重要。那么,如何来构建弹性、高可用的微服务呢?Redis Enterprise给出了一个完美的方案。

 文章来源地址https://www.toymoban.com/news/detail-746297.html

文况速览:

 

  • 什么是微服务架构?
  • 为什么微服务很重要?
  • Redis Enterprise:微服务的完美方案
  • 微服务架构的设计模式
  • 适合微服务架构的 Redis 企业功能

 

 

 

一、什么是微服务架构

 

正如著名的微服务专家 Chris Richardson 所定义的那样,微服务架构是一种将应用程序构建为低耦合服务集合的架构风格,这些服务具有高度的可维护性和可测试性,可独立部署,受特定业务领域的约束,并由小型团队负责。微服务架构可以快速、频繁、可靠地交付大型复杂应用程序。

 

 

【虹科干货】如何构建弹性、高可用的微服务?

 Monolith架构 vs. 微服务架构

 

 

 

二、为什么微服务很重要

 

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

 

 

 

1.微服务是一种架构风格,有助于开发团队更快地创建更好的软件,并最大限度地降低应用现代化的成本和复杂性。这种架构风格及其相关的软件开发文化使微服务开发团队能够按照自己的发布周期运作,拥抱端到端产品所有权,并采用基于持续集成/持续交付的 DevOps 框架。这样的好处是,企业可以缩短新服务开发的上线时间,通常可将以月为单位的项目缩短至以天为单位。

 

 

2.微服务可加速数据层云迁移。这是因为微服务主要依赖于云原生 NoSQL 数据库。2021 IDC InfoBrief 调查显示,NoSQL 数据库正在取代内部部署的关系型数据库,因为后者不是为云或独立发布周期而构建的。

 

 

 

此外,一些企业无法一次性将其传统的单体应用迁移到云原生应用。微服务可实现子域从单体架构向现代技术栈进行增量迁移。

 

 

 

三、Redis Enterprise:微服务的完美方案

 

1.微服务规模的性能

 

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

 

【虹科干货】如何构建弹性、高可用的微服务?

 

 2.为容错和恢复而设计

 

为确保您的应用程序具有故障恢复能力,Redis Enterprise 采用了无共享集群架构。它在各个故障级别都具有容错能力:在进程层面、单个节点甚至跨基础架构可用区自动进行故障切换。它还包括可调整的持久性和灾难恢复能力。

【虹科干货】如何构建弹性、高可用的微服务?

 

 

3.利用快速灵活的数据模型降低复杂性

 

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

【虹科干货】如何构建弹性、高可用的微服务?

 

 

4.利用原生 Kubernetes 部署简化操作

 

Redis Enterprise 提供统一的操作界面,可减少技术学习成本、简化操作并降低服务延迟。

 

针对 Kubernetes Redis Enterprise 运营商为您提供一致的自动化部署,从而降低风险。这让开发团队能够专注于创新和业务价值。

【虹科干货】如何构建弹性、高可用的微服务?

 

 

5.可跨云跨地域适应

 

Redis Enterprise 可部署在任何地方:任何云平台、内部部署、多云或混合云架构。

 

【虹科干货】如何构建弹性、高可用的微服务?

 

 

 

四、微服务架构的设计模式

 

1.微服务查询缓存

 

独立或有界上下文是微服务架构的一个重要特征。作为领域驱动设计的一部分,每个服务都可以拥有一个专用数据库,该数据库有自己独特的数据模型和SLAService Level Agreement,服务水平协议性能目标。查询缓存是一种常用于缩短微服务响应时间的缓存模式,其工作原理是在每个微服务旁部署 Redis Enterprise 缓存,以提供单一业务上下文中所需的数据。(也就是说,它只服务于一个微服务)。

 

 

 

Redis Smart Cache 是一个开源库,可将缓存无缝添加到任何符合 JDBC 标准的平台、应用程序或微服务中,在提高查询性能的同时降低操作复杂性,而且无需更改应用程序代码。Redis Enterprise 支持多种数据模型,可轻松实现多租户部署,保持数据隔离的同时,不降低性能。

 

 

【虹科干货】如何构建弹性、高可用的微服务?

 

 

2.通过 CQRS 缓存跨域共享数据

 

微服务需要快速访问数据,但当数十或数百个微服务试图从同一个缓慢的磁盘数据库中读取数据时,就会产生许多问题。跨域数据需要实时提供给每个微服务,而且不能超出其重点业务环境和目标的范围。

 

 

 

命令查询责任隔离(Command-Query Responsibility Segregation, CQRS)是微服务架构中一种重要的预取缓存模式,它将读取(查询)和写入命令分离开来,这使应用程序能够将数据写入速度较慢的基于磁盘的 SQL 数据库,同时使用 Redis Enterprise 中集成的变更数据捕获(CDC)功能预取和缓存该数据,以实现高速读取。这样,其他需要数据的微服务就能立即获得这些数据。

 

 

【虹科干货】如何构建弹性、高可用的微服务?

 

 

3.全局数据的 API 网关缓存

 

微服务应用程序可以在 API 网关级别缓存全局访问数据,以分发和加速所有服务都会访问的数据。通常情况下,这些数据包括会话数据(如用户 ID 和偏好设置)和验证数据(令牌、授权状态和权限)。这样,所有服务都能实时获得频繁请求的数据。结果如何?减少应用延迟,同时不打破每个微服务业务上下文的界限。

 

 

 

API 网关上还可以使用 Redis Enterprise 实现速率限制,即在一定时间范围内对 API 请求的数量进行计量。这可以防止系统超载,并防止 DDoS 攻击。

 

 

【虹科干货】如何构建弹性、高可用的微服务?

 

 

4.用于服务间通信的异步消息传递

 

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

 

 

 

Redis Streams 是一种不可变的按时间排序的日志数据结构,可让服务(生产者)发布异步消息,多个消费者可订阅这些消息。可以对其进行配置,以处理不同的交付保证、支持消费者群组,并应用与 Apache Kafka 主题分区类似的其他功能。更棒的是,Redis Streams 可帮助在后端创建报告、分析、审计和取证分析。

 

 

【虹科干货】如何构建弹性、高可用的微服务?

 

 

五、适合微服务架构的 Redis 企业功能

 

1.双活备份

 

微服务架构有许相互多连接的服务,但它面临着与单体应用程序相同的性能需求。为尽量减少延迟,数据应尽可能靠近服务。您还需要确保数据库在发生故障或更新冲突时彼此保持一致。Redis Enterprise 可以部署为双活、无冲突复制的数据库,以处理来自多个本地服务安装的更新,而不会影响延迟或数据一致性,并在发生故障时提供连续性服务。

 

 

 

2.多种数据模型

 

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

 

 

 

3.多用户数据库

 

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

 

 

 

4.灵活跨云

 

微服务提供了极大的技术灵活性,选择在哪里部署数据库也不例外。Redis Enterprise 可以部署在任何地方:任何云平台、企业内部、多云或混合云架构。它还可在 KubernetesPivotal Kubernetes Service (PKS) Red Hat OpenShift 上使用。

 

 

 

5.本地 Kubernetes 容器编排和管理

 

容器与企业部署微服务应用程序密切相关,并有助于企业部署微服务应用程序。Kubernetes 是容器部署、调度和编排的标准平台。Redis 是在容器上运行的顶级数据库技术,Docker hub 启动次数超过 20 亿次。用于 Kubernetes Redis Enterprise Operator 提供:自动可扩展性、持久存储卷、简化的数据库端点管理和零停机时间滚动升级。它可多个 Kubernetes 平台和云托管服务上使用

 

到了这里,关于【虹科干货】如何构建弹性、高可用的微服务?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【虹科干货】设计微服务架构的原则

    微服务是一种软件架构策略,有利于改善整体性能和可扩展性。你可能会想,我的团队需不需要采用微服务,设计微服务架构有哪些原则?本文会给你一些灵感。 文章速览: 微服务设计 通过领域驱动设计实施微服务 选择技术栈 微服务设计架构的 5 个原则   微服务是一种软

    2024年02月05日
    浏览(44)
  • 如何利用容器与中间件实现微服务架构下的高可用性和弹性扩展

    本文分享自天翼云开发者社区《如何利用容器与中间件实现微服务架构下的高可用性和弹性扩展》,作者:c****w 在当今的互联网时代,微服务架构已经成为许多企业选择的架构模式,它能够提高系统的灵活性、可维护性和可扩展性。然而,微服务架构下的高可用性和弹性扩展

    2024年01月19日
    浏览(67)
  • 【虹科干货】Redis Enterprise vs ElastiCache——如何选择缓存解决方案?

    使用Redis 或 Amazon ElastiCache 来作为缓存加速已经是业界主流的解决方案,二者各有什么优势?又有哪些区别呢? 为了提高 Web 应用程序和数据驱动服务的性能与效率,使用 Redis 或 Amazon ElastiCache 来作为缓存加速已经是业界主流的解决方案。随着业务规模的增长,其需要处理的

    2024年02月08日
    浏览(50)
  • 构建稳健的微服务架构:关键的微服务设计原则和最佳实践

            在现代软件开发中,微服务架构正逐渐成为构建复杂应用程序的首选方法之一。微服务架构的核心理念是将应用程序划分为一系列小型、自治的服务,每个服务专注于一个特定的业务功能。然而,要实现一个稳健的微服务架构并不仅仅是将功能拆分成微服务,还需

    2024年02月14日
    浏览(54)
  • 微服务的艺术:构建可扩展和弹性的分布式应用

    🎉欢迎来到架构设计专栏~微服务的艺术:构建可扩展和弹性的分布式应用 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:架构设计 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平

    2024年02月07日
    浏览(243)
  • 【虹科干货】逻辑数据库可能已经无法满足需求了!

    不可否认,单个Redis实例已经不能满足实际生产中的需求了。为了解决由此带来的问题,何不试试用专用实例代替逻辑数据库呢? 一、逻辑数据库可能已经无法满足需求的4个迹象 1.您有个“吵闹的邻居” PS:“吵闹的邻居”指同一个Redis OSS实例中其它繁忙的逻辑数据库。

    2024年02月07日
    浏览(56)
  • 【虹科干货】谈谈Redis Enterprise实时搜索的过人之处

    我们都知道,用户在使用应用程序时候,对于速度有着越来越高的要求,真可谓是 “一秒也等不及”。而开发团队又该怎样来满足这种对于实时性的期望呢?   文章速览:   Redis Enterprise 实时搜索的应用场景 利用索引为开发人员带来更好的体验 Redis Enterprise 实时搜索的优势

    2024年02月08日
    浏览(47)
  • 【虹科干货】Redis 开发者需要了解的缓存驱逐策略

    在你 搭建并配置了一个 Redis数据库 之后 , Redis成功地 提升了应用程序性能 。然而 这里有一个潜在问题, 随着缓存数据的快速增加和内存占用率的逐渐上升, 你 很快会发现 Redis缓存 容量即将达到硬件存储容量上限 。或许 你曾 听说 用 过缓存驱逐 来解决这个问题 ,但 究

    2024年02月08日
    浏览(48)
  • 【虹科干货】Redis企业版给DevOps团队带来了哪些价值?

    内存太贵?现代化转型太难?还在花费精力维护数据库基础设施?Redis Enterprise 在开源版的基础上增加了一整套包含管理、自动化、弹性以及安全等方面的功能,使其更适合企业级的应用场景。那么, Redis Enterprise 如何能成为为您节约成本的选择?   文章速览: 发现 1:为应

    2024年02月06日
    浏览(35)
  • 【虹科干货】Oracle与Redis Enterprise协同,作为企业缓存解决方案

    单独使用 Oracle作为企业缓存数据库时,会出现哪些问题呢?使用Redis Enterprise与Oracle共同用作企业级缓存或副本数据库,会出现哪些喜人的提升呢?Orcle配合使用Redis Enterprise,为什么能够打造更快、更高效、更具成本效益的现代企业数据库呢?     文章速览:   Oracle为什么需

    2024年02月05日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包