使用 RabbitMQ Streams 进行消息去重
RabbitMQ Streams 概述 介绍了流,这是 RabbitMQ 3.9 中的一项新功能,RabbitMQ Streams 首个应用程序 提供了使用流 Java 客户端的编程模型概述。这篇文章介绍了如何在 RabbitMQ Streams 中对发布的消息进行去重。
由于去重是一个关键且复杂的概念,因此这篇文章将逐步引导您完成此机制,从一个简单的、略微有缺陷的发布应用程序到一个经过优化的可靠实现。
RabbitMQ Streams 概述 介绍了流,这是 RabbitMQ 3.9 中的一项新功能,RabbitMQ Streams 首个应用程序 提供了使用流 Java 客户端的编程模型概述。这篇文章介绍了如何在 RabbitMQ Streams 中对发布的消息进行去重。
由于去重是一个关键且复杂的概念,因此这篇文章将逐步引导您完成此机制,从一个简单的、略微有缺陷的发布应用程序到一个经过优化的可靠实现。
RabbitMQ Streams 概述 介绍了流,这是 RabbitMQ 3.9 中的一项新功能。这篇文章介绍了当 流协议 正在使用时,客户端应用程序应如何连接到 RabbitMQ 节点以充分利用流的功能。
流针对高吞吐量场景进行了优化,这就是为什么数据局部性等技术细节对于充分发挥 RabbitMQ 集群的功能至关重要的原因。客户端库可以处理大多数细节,但在设置涉及容器和负载均衡器等额外层时,了解底层工作原理是至关重要的。如果您想深入了解流并避免在部署第一个流应用程序时遇到一些麻烦,请继续阅读!
RabbitMQ Streams 概述 介绍了流,这是 RabbitMQ 3.9 中的一项新功能。这篇文章将继续介绍如何使用流和 Java 客户端。我们将编写第一个应用程序,该应用程序将消息发布到流,然后消费这些消息。
RabbitMQ 3.9 引入了一种新型的数据结构:流。流解锁了一组用例,而使用“传统”队列实现这些用例可能会很繁琐。让我们在这篇文章中了解流如何扩展 RabbitMQ 的功能。
如果您希望在 RabbitMQ 部署出现问题时收到通知,现在可以在 RabbitMQ 集群操作符 存储库中设置我们提供的 RabbitMQ 监控和警报。我们没有要求您按照一系列步骤设置 RabbitMQ 监控和警报,而是将这些步骤合并到 一条命令 中。虽然这是一个特定于 Kubernetes 的快速入门,您可以在 Kubernetes 之外使用这些 Prometheus 警报,但设置需要您付出更多考虑和努力。我们分享了快速简便的方法,开源且对所有人免费。
自 3.8.0 版本发布原生 Prometheus 支持以来,我们一直在不断改进 RabbitMQ 中内置的监控功能。监控代理及其客户端对于在问题影响到其余环境并最终影响到最终用户之前检测问题至关重要。
RabbitMQ 3.8.10 通过 Prometheus 端点和 HTTP API 公开了客户端身份验证尝试指标。
我们很高兴地宣布,适用于 Kubernetes 的 RabbitMQ 操作符现已正式上市。RabbitMQ 操作符使您能够在任何经过认证的 Kubernetes 发行版上轻松、一致地配置和管理 RabbitMQ 集群。操作符通知 Kubernetes 容器编排系统如何配置和控制特定应用程序。Kubernetes(以下简称 K8s)操作符模式是一种将 K8s API 和状态管理扩展到包括自定义资源配置和管理的方法——这些资源不是在默认 K8s 部署中提供的。在这篇文章中,我们将讨论操作符如何使 K8s 系统能够控制 RabbitMQ 集群。
这是关于法定数量队列(我们新的复制队列类型)系列文章的第一部分。我们将涵盖从法定数量队列是什么到硬件要求、从镜像队列迁移以及最佳实践的一切。
镜像队列,也称为 HA 队列,多年来一直是需要为您的消息提供额外数据安全保证的事实上的选择。法定数量队列是下一代复制队列,旨在取代大多数镜像队列用例,从 3.8 版本开始提供。
在本博文系列中,我们将介绍以下内容
RabbitMQ 3.8 刚刚发布,包含一些主要的新功能,重点关注可靠性、操作和可观察性。
您可以在 GitHub 版本页面 上找到新的 3.8 版本,其中包含有关版本中包含的内容以及各种安装资产的信息。有关升级到 3.8.0 的更多信息,请参阅我们的 升级指南。
我们的团队将此版本献给 Joe Armstrong,Erlang 的创建者。Joe 在并发和分布式系统领域的成果至今仍在为 RabbitMQ 带去益处。同样重要的是,Joe 是一个难得的例子,他是一位才华横溢的工程师,同时也非常谦虚和善良。
让我们快速了解一下此版本中的新功能。
在这篇文章中,我们将介绍 功能标志,这是 RabbitMQ 3.8 中的一个新子系统。功能标志将允许对下一个次要版本进行滚动集群升级,而无需在升级之前停止所有节点。