首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >即使保存失败,也会确认WebFlux/Reactive Spring RabbitmMq消息

即使保存失败,也会确认WebFlux/Reactive Spring RabbitmMq消息
EN

Stack Overflow用户
提问于 2018-05-28 12:21:22
回答 2查看 665关注 0票数 0

我最近开始使用spring webflux和Rabbitmq以及cassandra reactive存储库。我注意到的是,即使在cassandra中保存某些元素也无法成功保存该消息。我传播了在保存过程中抛出的异常,但即使消息是从队列中删除的。我想知道我应该怎么做才能让Rabbitmq知道这条消息应该被认为是失败的(我想拒绝消息以将其发送到死信队列)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RabbitListener(queues = Constants.SOME_QUEUE, returnExceptions = "true")
public void receiveMessage(final List<ItemList> itemList) {
    log.info("Received message from queue: {}", Constants.SOME_QUEUE);
    itemService.saveAll(itemList)
            .subscribe(
                    item-> log.info("Saving item with {}", item.getId()),
                    error -> {
                        log.error("Error during saving item", error);
                        throw new AmqpRejectAndDontRequeueException(error.getMessage());
                    },
                    () -> log.info(Constants.SOME_QUEUE+
                            " queue - {} items saved", itemList.size())
            );
}
EN

回答 2

Stack Overflow用户

发布于 2018-05-28 14:51:19

Reactive是非阻塞的;一旦侦听器线程返回到容器,消息就会被确认。您需要以某种方式阻止侦听器线程(例如,使用Future<?>),并在cassandra操作完成时唤醒它,如果成功,则正常退出,或者在失败时抛出异常,以便重新传递消息。

票数 0
EN

Stack Overflow用户

发布于 2018-05-29 07:58:29

我通过向rabbitmq发送明确的确认/拒绝消息解决了我的问题。这导致我不得不写更多的代码,但至少现在它可以工作了,我完全控制了发生的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50566329

复制
相关文章
Spring Webflux - 02 Reactive介绍
Spring Webflux - 01 MVC的困境中我们提到了通过Servlet异步的方式解决性能问题的方式,但并没有解决根本性的问题。
小小工匠
2022/10/08
7190
Spring Webflux - 02 Reactive介绍
Spring Boot 集成 WebFlux 开发 Reactive Web 应用Spring Boot 集成 WebFlux 开发 Reactive Web 应用
IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。在此背景下,包括NoSQL,Hadoop, Spark, Storm, Kylin在内的大批新技术应运而生。其中以RxJava和Reactor为代表的响应式(Reactive)编程技术针对的就是经典的大数据4V( Volume,Variety,Velocity,Value)中的Velocity,即高并发问题,而在Spring 5中,引入了响应式编程的支持。 本章介绍 Spring Boot 如何集成Spring 5 中的WebFlux 开发响应式 Web 应用。 1.1 响应式宣言
一个会写诗的程序员
2018/08/17
1.5K0
Spring 5 新增全新的reactive web框架:webflux
Spring 5发布了一个非常重要的模块,名字叫做:spring-webflux。该模块平级的就是spring-webmvc。 具体能做什么呢?自然是mvc不擅长的事情了。自然是人们一直希望实现,但总
ImportSource
2018/04/03
6.9K0
Spring 5 新增全新的reactive web框架:webflux
Spring WebFlux 教程:如何构建一个简单的响应应式 Web 应用程序
反应式系统是采用反应式架构模式设计的系统,该模式优先考虑使用松散耦合、灵活和可扩展的组件。它们在设计时还考虑了故障解决方案,以确保即使一个系统出现故障,大部分系统仍能运行。
用户4235284
2023/10/14
1.5K0
Spring WebFlux 教程:如何构建一个简单的响应应式 Web 应用程序
SpringMVC 教程 - 异步请求
在Servlet容器中启动异步支持之后,controller的方法可以通过DeferredResult包装返回值来支持异步处理。例如:
代码拾遗
2018/07/24
2.2K0
WebFlux 和 Spring Security 会碰出哪些火花?
松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程
江南一点雨
2021/07/15
9990
WebFlux 和 Spring Security 会碰出哪些火花?
通过Spring Boot Webflux实现Reactor Kafka
在Apache Kafka简介中,我们研究了分布式流媒体平台Apache Kafka。这一次,我们将关注Reactor Kafka,这个库可以创建从Project Reactor到Kafka Topics的Reactive Streams,反之亦然。
本人秃顶程序员
2019/04/24
3.5K1
通过Spring Boot Webflux实现Reactor Kafka
Spring Webflux - 03 Webflux编程模型
https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html#webflux
小小工匠
2022/10/08
1K0
Spring Webflux - 03 Webflux编程模型
10分钟入门响应式:Springboot整合kafka实现reactive
Springboot引入Reactor已经有一段时间了,笔者潜伏在各种技术群里暗中观察发现,好像scala圈子的同仁们,似乎对响应式更热衷一点。也许是因为他们对fp理解的更深吧,所以领悟起来障碍性更少一些的原因吧。尽管webflux对于数据库的支持,还不那么完善,也不妨我们试上一试。
麒思妙想
2021/08/12
1.9K0
10分钟入门响应式:Springboot整合kafka实现reactive
艿艿连肝了几个周末,写了一篇贼长的 Spring 响应式 Web 框架 WebFlux!市面第二完整~
摘要: 原创出处 http://www.iocoder.cn/Spring-Boot/WebFlux/ 「芋道源码」欢迎转载,保留摘要,谢谢!
芋道源码
2020/06/01
6.1K0
Spring Boot 中的响应式编程和 WebFlux 入门
Spring 5.0 中发布了重量级组件 Webflux,拉起了响应式编程的规模使用序幕。
纯洁的微笑
2019/05/06
3.6K0
Spring Boot 中的响应式编程和 WebFlux 入门
Kotlin 使用 Spring WebFlux 实现响应式编程 Kotlin 使用 Spring WebFlux 实现响应式编程参考资料
IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。在此背景下,包括NoSQL,Hadoop, Spark, Storm, Kylin在内的大批新技术应运而生。其中以RxJava和Reactor为代表的响应式(Reactive)编程技术针对的就是经典的大数据
一个会写诗的程序员
2018/08/17
1.5K0
Kotlin 使用 Spring WebFlux 实现响应式编程 Kotlin 使用 Spring WebFlux 实现响应式编程参考资料
Spring Boot 2.0 WebFlux 上手系列课程:快速入门(一)
Spring Boot (Boot 顾名思义,是引导的意思)框架是用于简化 Spring 应用从搭建到开发的过程。应用开箱即用,只要通过一个指令,包括命令行 java-jar 、 SpringApplication 应用启动类 、 Spring Boot Maven 插件等,就可以启动应用了。另外,Spring Boot 强调只需要很少的配置文件,所以在开发生产级 Spring 应用中,让开发变得更加高效和简易。目前,Spring Boot 版本是 2.x 版本。Spring Boot 包括 WebFlux。
二哥聊运营工具
2021/12/17
1.1K0
Spring Boot 2.0 WebFlux 上手系列课程:快速入门(一)
Spring Boot 系列 —— Spring Webflux
Java 8提出了函数式接口的概念。所谓函数式接口,简单来说,就是只定义了单一抽象方法的接口。 【示例】
求和小熊猫
2022/06/30
1.5K0
Spring Boot 系列 —— Spring Webflux
Spring之WebFlux
在spring5.0前,web技术栈都是阻塞式的,虽然servlet3.0引入了非阻塞API的使用,但是这种异步是不彻底的,因为比如filter、servlet在约定上还是同步的。所以Spring5.0 为web技术提供了一种全新的非阻塞与的技术栈,也就是webflux技术。
加多
2018/12/05
2K0
Spring之WebFlux
Spring船新版推出的WebFlux,是兄弟就来学我
Spring WebFlux是Spring Framework 5.0中引入的新的响应式Web框架。 与Spring MVC不同,它不需要Servlet API,完全异步和非阻塞, 并通过Reactor项目实现Reactive Streams规范,所以性能更高。 并且可以在诸如Netty,Undertow和Servlet 3.1+容器的服务器上运行。注意,这里性能高指的是吞吐量方面,WebFlux 并不能使接口的响应时间缩短,它仅仅能够提升吞吐量和伸缩性。以下是官方原话:
端碗吹水
2020/09/23
2.1K0
Spring船新版推出的WebFlux,是兄弟就来学我
RabbitMQ 消息确认机制
消息的确认,是指生产者投递消息后,如果 Broker 收到消息,则会给我们生产者一个应答。生产者进行接收应答,用来确定这条消息是否正常的发送到 Broker ,这种方式也是消息的可靠性投递的核心保障!
海向
2019/09/23
1.1K0
RabbitMQ 消息确认机制
【RabbitMq 篇六】-消息确认(发送确认与接收确认)
消息确认是保证消息传递可靠性的重要步骤,上一节我们说到持久化,持久化只能保证消息不丢失,但是如果消息如果投递失败我们怎么进行补偿操作呢?解决办法就是实现回调函数进行操作,在消息的发送和消息的消费都可以进行补偿操作,下面我们就要讲解消息确认。
胖虎
2019/06/26
3.4K0
【RabbitMq 篇六】-消息确认(发送确认与接收确认)
RabbitMQ 消息确认详解
RabbitMQ的模型是生产者发送信息到 Broker (代理),消费者从 Broker 中取出信息。但是生产者怎么知道消息是否真的发送到 Broker
派大星在吗
2021/12/17
1.3K0
点击加载更多

相似问题

Spring WebFlux: Reactive MongoDB

32

BadRequest Reactive WebFlux -如何定制Spring错误消息

123

即使消息正确,TestNG测试也会失败。

12

即使失败,reCaptcha也会显示成功消息

10

Spring Integration消息通道即使超时也会挂起

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文