• 对微服务使用异步通信时,通常使用消息代理。代理确保不同微服务之间的通信可靠且稳定,消息在系统内得到管理和监控,并且消息不会丢失。您可以选择一些消息代理,它们的规模和数据功能各不相同。这篇博文将比较三种最受欢迎​​的代理:RabbitMQ、Kafka 和 Redis。微服务之间有两种常
  • 微服务是一种流行的设计模式,其中一个大型应用程序被分解为多个独立且松散耦合的服务,这些服务通过预定义的接口相互通信;Walmart 的ML平台使用相同的原理构建: 部署在 Kubernetes 集群中的独立服务通过 REST API 进行通信。作为平台功能,为事件提供以用户为目标的通 icon
  • RabbitMQ 3.9 引入了一种新型数据结构:流。Streams 解锁了一组用例,使用“传统”队列实现这些用例可能很乏味。让我们在这篇文章中发现流如何扩展 RabbitMQ 的功能。RabbitMQ 流使用非破坏性消费语义对仅附加日志进行建模。这意味着——与 RabbitMQ 中 icon
  • 有时开发人员只关心速度。忽略消息传递的所有其他优势,他们会问我们以下问题:RPC 不是比消息传递更快吗?RPC可能会有其他不同的术语或技术,如 REST、微服务、gRPC、WCF、Java RMI 等。但是,无论使用哪个特定词,其含义都是相同的:通过 HTTP 进行远程方法调用。所以 icon
  • 两种常用架构: 用于数据存储的 PostgreSQL Redis 用于协调后台作业队列(以及一些有限的原子操作) Redis 非常棒,但如果我告诉你这个堆栈最常见的用例实际上可以只使用 PostgreSQL 来实现呢?很有可能您使用 Redis 做的事情实际 icon
  • 如何使用 Redis 的特性来生成反应式数据流?Redis 是我遇到的最强大、最通用的技术之一。可悲的是,大多数人只知道它是因为它是一个很好的缓存解决方案。我们需要解决这个问题。特别是,我想向您展示您可以创建一个以 Redis 作为主要组件的反应式架构。这是一个巨大的 icon
  • 这篇博文介绍了 MemQ,这是一种为 Pinterest 的云开发的高效、可扩展的 PubSub 系统,自 2020 年中期以来一直为我们提供近实时数据传输用例,并补充了 Kafka,同时成本效率提高了 90%。 Kafka问题近十年 icon
  • 对于大型分布式系统,Kafka 往往是更好的选择。它可以更有效地横向扩展,为更大的场景实现更好的吞吐量,包括消费者离线和不可用时。RabbitMQ 非常适合具有较低延迟要求的系统,消费者可以跟上消息的生产,但可能对并行吞吐量处理要求较低。 RabbitMQ 和 Kafka 遵循非常不 icon
  • 客服与客户之间沟通是每个企业的核心,每家公司都应该拥有自己的对话并以最佳方式利用他们的对话数据,同时考虑到客户的兴趣和隐私。Airy 是一个对话平台,主要为企业构建:大多数企业都有他们支持的各种对话应用程序和渠道(从用于客户服务的 Facebook Messenger 和 Insta icon
  • 优步最近推出了一项新功能:UberEats 上的广告。这种新能力带来了 Uber 需要解决的新挑战,例如广告拍卖、竞标、归因、报告等系统。本文重点介绍我们如何利用开源技术构建 Uber 的第一个“近实时”恰好一次事件处理系统。我们将深入了解我们如何实现一次性处理以及事件处理作业的内部工作原理 icon
  • 本文是SpringBoot + DDD + Apache Kafka实现最终一致性的教程与源码第四部分:这篇文章中说明了三种状态更改事件消息传递流程。< icon
  • aiorq 是一个带有 asyncio 和 redis 的分布式任务队列,由 arq 重写以进行改进并包含 Web 界面。要求 Redis >= 5.0 aioredis>=1.1.0 <2.0.0 安装 icon
  • Queue 和 Deque的区别在于 ,您只能从 Queue 的后端添加元素,但可以在 Deque 的前端和后端添加元素。考虑你想实现一个售票柜台。人们可以从最后进入队列,并将从前面移除。而且,为了实现这个场景,我们将使用的数据结构将是  icon
  • Factorio异星工场 是一个开放世界的 RTS,您可以在其中构建和优化供应链以发射卫星并恢复与您的家乡星球的通信,而 Kafka 是一个分布式流媒体平台,它处理异步通信一种持久的方式。我想知道 在 Factorio 和 Kafka 之间的类比开始崩溃之前,我们能走多远。让我们从头 icon
  • 这篇文章足够清楚并解释了 JMS 模式的主要思想。现在,Message Broker 几乎是每个企业应用程序的必备部分。使用的源代码 icon
  • 函数式语言通常具有不可变的数据类型——一旦创建了对象,您就无法更改它,尽管您可以将其作为其他对象的一部分包含在内。不可变对象更容易推理,并防止代码的两部分认为它们具有更改数据的独占访问权限的错误。我们将研究一种使用两个Stack以不可变方式实现队列Queue的方法。  icon
  • 这是一个理解消息系统的源码案例,只有JMS,没有使用复杂的Kafka和RabbitMQ!点击标题进入: icon