使用 Testcontainers 测试 Redis
1、概览 {#1概览} ----------- **Testcontainers** 是一个用于创建临时 Docker 容器进行单元测试的 Java 库。当我们想要避免使用实际服务器进行测试时,它非常有用。 本文将会带你了解如何在 [Spring Boot](/spring-boot/) 中使用 Testcontainers 测试 Redis。 2、项目设置 {#2项目设...
1、概览 {#1概览} ----------- **Testcontainers** 是一个用于创建临时 Docker 容器进行单元测试的 Java 库。当我们想要避免使用实际服务器进行测试时,它非常有用。 本文将会带你了解如何在 [Spring Boot](/spring-boot/) 中使用 Testcontainers 测试 Redis。 2、项目设置 {#2项目设...
在应用中把 *Redis* 当成消息队列来使用已经屡见不鲜了。我想主要原因是当代应用十有八九都会用到 Redis,因此不用再引入其他消息队列系统。而且 Redis 提供了好几种实现消息队列的方法,用起来也简单。 使用 Redis 实现消息队列的几种方式 {#使用-redis-实现消息队列的几种方式} --------------------------------------...
1、概览 {#1概览} ----------- 在本教程中,我们将使用 Spring AI 框架和 RAG(检索增强生成)技术构建一个 ChatBot(聊天机器人)。在 Spring AI 的加持下,我们将与 Redis Vector(向量)数据库集成,以存储和检索数据,从而增强 LLM(大型语言模型)的提示功能。一旦 LLM 接收到包含相关数据的提示,它就会有效地用自然语言...
1、概览 {#1概览} ----------- [Apache Kafka](https://kafka.apache.org/) 是一个功能强大、分布式、容错的流处理系统。在之前的教程中,介绍了 [如何在 Spring 中整合、使用 Kafka](/spring-kafka/)。 本文将在 [上一节](/spring-kafka/) 的基础上带你了解如何编写可靠、独立的集...
1、概览 {#1概览} ----------- 本文将带你了解 [Spring Kafka](/spring-kafka/) 中的 "Trusted Packages" 功能,了解其背后的动机以及用法。 2、先决条件 {#2先决条件} --------------- 一般来说,Spring Kafka 模块允许我们指定一些关于发送的 POJO 的元数据...
1、简介 {#1简介} ----------- [Apache Kafka](https://kafka.apache.org/) 是一个分布式流平台,擅长处理海量实时数据流。Kafka 将数据组织成 Topic(主题),并进一步将 Topic 划分为 Partition(分区)。每个分区都是一个独立的 Channel(通道),可实现并行处理和容错。 本文将带你了解如何把数...
1、简介 {#1简介} ----------- 本文将带你了解如何在 [Spring](/spring/) 中为 Apache Kafka 配置死信队列。 2、死信队列 {#2死信队列} --------------- 死信队列(Dead Letter Queue,DLQ)用于存储由于各种原因无法正确处理的消息,例如间歇性系统故障、无效的消息模式或损坏的内容。这些消息可以...
本文将带你了解如何使用 [Spring Boot](/spring-boot/) 和 [Spring Kafka](/spring-kafka/) 管理 Kafka 消费者偏移量(Offset)。 在之的一篇文章中,主要说明了应用处理 Kafka 消息的方式可能会影响系统的整体性能,并没有考虑消费者端的消息重复或消息丢失等问题。本文将会介绍这些话题。 1、源码 {#1源码}...
1、概览 {#1概览} ----------- 本文将带你了解如何在 [Spring Boot](/spring-boot/) 应用中动态地启动和停止 Kafka Listener。 2、依赖 {#2依赖} ----------- 首先,添加 [*spring-kafka*](https://mvnrepository.com/artifact/org.springfra...
1、概览 {#1概览} ----------- 本文将带你了解从 Kafka 命令行(CLI)发送 Key/Value 消息的两种方法。 在处理金融交易、预订、在线购物等实时事件驱动系统中,确保特定 Topic 上消息的有序性是一个常见需求。在这种情况下,我们应该为发送到这些 Topic 的事件使用 *Kafka Message Key*。 2、先决条件 {#2先决条件}...