不要将消息标记为使用Spring Cloud Stream在反应式功能中已确认

哈罗德·布朗(Harold L.Brown):

我正在使用spring-cloud-stream带有Java 13的Horsham SR1版本。我正在使用Google Pub / Sub作为基础消息系统。

我有一个Function类似这样的反应式

@Bean
public Function<Flux<Message>, Mono<Void>> messageConsumer() {
    return messageFlux ->
            messageFlux
                    .flatMap(message -> {
                        // do something
                        return something;
                    })
                    .doOnError(throwable -> log.error("could not process  message", throwable))
                    .then();
}

我怎样才能让Spring 承认错误消息呢?flatMap方法内部抛出异常是否足够

奥列格·朱拉库斯基(Oleg Zhurakousky):

您必须了解每种方法都有优点和缺点,而在反应性方面我们看不到流程。它完全在您的控制之下。实际上,主要区别之一是上述函数仅被调用一次,如果它是命令性函数,则它将在每条消息上被调用。

基本上,使用反应式用户可以有效地将操作单位声明为整个流(无论在您的应用程序上下文中可能意味着什么)。势在必行,操作单元是单个消息,因此我们可以执行按消息发送的小节,小节等。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用于Webflux反应式API的Spring Cloud Contract

在Spring Cloud Stream中使用Embedded Kafka进行集成测试时,如何立即验证是否已确认消息?

Spring Cloud Stream-功能-如何手动确认Rabbitmq消息?

Spring Cloud Stream + RabbitMQ - 使用队列中的现有消息

如何在Spring Cloud Stream中手动确认RabbitMQ消息?

Spring Cloud 中的聚合消息

使用标记为反应

使用 Spring Cloud Stream 和 Kafka 处理重复消息

使用Spring Cloud Stream 3.0+从RabbitMQ队列消费消息

使用Spring Cloud Stream和RabbitMQ设置消息属性

Angular 11 如何使用反应式表单验证确认密码与密码相同

Spring Cloud Stream中的PollableChannel

使用Iron Router在Meteor中设置反应式布局

使用反应式mongoDB在Micronaut中创建TextIndex

使用反应式调用ShinyServer中的函数

Spring Cloud Stream-批量接收消息

发送后的Spring Cloud Stream处理消息

拦截Spring Cloud Stream SubscribableChannel的传入消息

Spring Cloud Stream多种功能定义

Spring Cloud Stream RabbitMQ

Spring Cloud Stream验证

Spring Cloud Stream + Quartz

使用Kafka活页夹在Spring Cloud Stream中重播死信队列中的消息

发布者通过Spring Cloud Stream确认

Spring Cloud Task无法使用RabbitMQ从Spring Cloud Stream启动

功能反应式编程(FRP)可以使用单子表示吗?

如何在spring-cloud-stream中的kafka进程拓扑中使用交互式查询?

如何在 Firebase Cloud Functions 中确认 PubSub 消息?

如何使用Cloud Functions中的Cloud DataStore或Cloud SQL for Firebase?