我们现在,简单地,redis

了解更多

Redis如何与微服务架构配合

这篇博客文章改编自我们的新电子书《Redis傻瓜微服务》凯尔戴维斯Loris Cro.。摘录是最初于2019年12月20日发表在The New Stack上下载完整的电子书。

今天许多广泛使用的数据库系统是在公司通过整个企业采用单个数据库的时代开发的。此单个数据库系统将在一个地方存储并运行企业的所有功能。您可以选择它:一个充满冰箱大小的机器的房间,许多运动超大卷轴磁带驱动器。

但redis比许多其他流行的数据库系统不同地演变。Redis内置于NoSQL ERA,是一个灵活且多功能的数据库,专门设计不打扰存储大量的数据,这些数据主要是空闲的。微服务体系结构有相关的目标:每个服务都旨在符合特定使用 - 不要在业务中运行所有内容。

Redis被设计用来存储经常变化和移动的活动数据,具有不确定的结构,没有关系的概念。一个Redis数据库占用空间很小,即使用最小的资源也可以提供巨大的吞吐量。类似地,微服务体系结构中的单个服务只关心该服务的输入、输出和私有数据,这意味着Redis数据库可以支持各种不同的微服务,每个微服务都有自己的独立数据存储。这很重要,因为拥有许多服务的本质意味着每个服务必须尽可能快地执行,以弥补服务间通信带来的连接和延迟开销。

描述Redis Powered MicroServices架构

微服务架构的一个关键特征是每个单独的服务都掌握自己的服务 - 该服务没有与另一个服务紧密耦合。这意味着微服务必须维持自己的状态,并保持您需要数据库的状态。

MicroServices架构可以包括数百甚至数千种服务,并且开销是尺度的敌人。仅运行大量资源的基础架构将淡化微服务架构的好处。

理想情况下,服务数据将从其他数据层完全隔离,允许对慢速资源的横向扩展和交叉服务争用。由于服务专门设计用于填补单一角色(在业务流程方面),所以它们存储的状态本质上是非关系,并且适合NoSQL数据模型。REDIS可能不是MicroServices架构中所有数据存储的毯子解决方案,但它肯定适合许多要求。

一旦您建立了服务,它需要与其他服务交谈。在传统的微服务环境中,使用REST或类似约定,发生在私有HTTP端点上。收到请求后,服务开始处理请求。

虽然HTTP方法有效并且被广泛使用,但是有一种替代方法,可以将服务写入和从日志结构读取的位置进行通信。在这种情况下,那是Redis Streams.,这允许每个服务在其自己的流上宣布事件的完全异步模式,并仅侦听属于其感兴趣的服务的流。该点的双向通信通过观察彼此的两个服务来实现。

然而,即使在不使用REDIS进行存储或通信的服务中,REDIS仍然可以发挥重要作用。为了提供低延迟的最终响应,每个服务必须尽可能快地响应其自己的请求,通常超出传统数据库的性能阈值。redis,在这种情况下,扮演缓存的角色,其中服务的开发人员决定在没有总是从主数据库中直接检索数据的位置,而是可以从ag万博下载万博最新版本下载苹果REDIS中加快更快地拉动。

类似地,需要通过API访问的外部数据服务也可能太慢,并且可以在此处使用REDIS来防止不需要的呼叫和冗长的呼叫影响系统的整体性能。

有关Redis如何帮助您的MicroServices架构的信息有关更多详细信息,下载您自己的“Redis MicroServices的谜语”电子书的副本听听作者Kyle Davis和Loris Cro在新的堆栈上下文播客中讨论这本书。

Baidu