Tag: project reactor

如何在spring-webflux WebFilter中正确使用slf4j MDC

我引用了文章Postual Logging with Reactor Context and MDC但我不知道如何在WebFilter中访问reactor上下文。 @Component public class RequestIdFilter implements WebFilter { @Override public Mono filter(ServerWebExchange exchange, WebFilterChain chain) { List myHeader = exchange.getRequest().getHeaders().get(“X-My-Header”); if (myHeader != null && !myHeader.isEmpty()) { MDC.put(“myHeader”, myHeader.get(0)); } return chain.filter(exchange); } }

如何在Spring Webflux / WebClient中设置事件循环池大小?

在Vert.X等多反应堆框架中,我们可以设置事件循环线程的数量,例如: final VertxOptions vertxOptions = new VertxOptions(); vertxOptions.setEventLoopPoolSize(16); final Vertx myVertx = Vertx.vertx(vertxOptions); 如何在Spring Boot 2 WebFlux / WebClient中进行等效操作?

反应式编程优点/缺点

我一直在研究并尝试使用Reactor和RxJava进行编码的Reactive Style。 我确实理解,与单线程执行相比,反应式编码可以更好地利用CPU。 在基于Web的应用程序中,反应式编程与命令式编程之间是否有任何具体比较? 通过对非反应式编程使用反应式编程,我实现了多少性能提升和吞吐量? 还原反应编程有哪些优点和缺点? 有没有统计基准?

如何从Http集成流程创建Spring Reactor Flux?

我有一个与此非常类似的问题如何从ActiveMQ队列创建Spring Reactor Flux? 一个区别是消息来自Http端点而不是JMS队列。 问题是消息通道由于某种原因没有填充,或者Flux.from()没有获取它。 日志条目显示GenericMessage是从Http Integration流创建的,有效负载作为路径变量,但不会入队/发布到通道? 我试过.channel(MessageChannels.queue())和.channel(MessageChannels.publishSubscribe())没有任何区别,事件流是空的。 这是代码: @Bean public Publisher<Message> httpReactiveSource() { return IntegrationFlows. from(Http.inboundChannelAdapter(“/eventmessage/{id}”) .requestMapping(r -> r .methods(HttpMethod.POST) ) .payloadExpression(“#pathVariables.id”) ) .channel(MessageChannels.queue()) .log(LoggingHandler.Level.DEBUG) .log() .toReactivePublisher(); } @GetMapping(value=”eventmessagechannel/{id}”, produces=MediaType.TEXT_EVENT_STREAM_VALUE) public Flux eventMessages(@PathVariable String id){ return Flux.from(httpReactiveSource()) .map(Message::getPayload); } UPDATE1: 的build.gradle buildscript { ext { springBootVersion = ‘2.0.0.M2’ } repositories { mavenCentral() maven { […]

如何从ActiveMQ队列创建Spring Reactor Flux?

我正在试验Spring Reactor 3组件和Spring Integration来从JMS队列创建一个反应流(Flux)。 我试图从JMS队列(使用Spring Integration的ActiveMQ)创建一个反应流(Spring Reactor 3 Flux),以便客户端异步获取JMS消息。 我相信我已正确连接所有内容但客户端在服务器停止之前不会收到任何JMS消息。 然后,所有消息被“推送”到客户端一次。 任何帮助,将不胜感激。 这是我用来配置JMS,Integration组件和被动发布者的配置文件: @Configuration @EnableJms @EnableIntegration public class JmsConfiguration { @Value(“${spring.activemq.broker-url:tcp://localhost:61616}”) private String defaultBrokerUrl; @Value(“${queues.patient:patient}”) private String patientQueue; @Autowired MessageListenerAdapter messageListenerAdapter; @Bean public DefaultJmsListenerContainerFactory myFactory( DefaultJmsListenerContainerFactoryConfigurer configurer) { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); configurer.configure(factory, jmsConnectionFactory()); return factory; } @Bean public Queue patientQueue() { return new […]