Spring 集成 Jms.inboundGateway 与 JmsListener 相比非常慢

Spring integration Jms.inboundGateway is very slow compared to JmsListener

我发现使用 spring 集成时性能下降

IntegrationFlows.from(Jms.inboundGateway(connectionFactory)
                        .destination("orderQueue")
                        .jmsMessageConverter(new MarshallingMessageConverter(jaxbMarshaller()))
                       .transform(orderTransformer)
                       .handle(orderService, "saveOrder")
                       .get();

使用 JmsListener 的相同代码性能更好

 @JmsListener(destination = "orderQueue")
 public void receiveMessage(Message message) throws IOException {
    Order order = (Order)jaxb2Marshaller.unmarshal(new StringSource(((TextMessage) message).getText()));
        OrderDetails orderDetails = orderTransformer.transform(order);
        orderService.saveOrder(orderDetails);
 }

有人可以帮助 spring 集成中需要配置的内容才能很好地执行它吗?

您不会将苹果与苹果进行比较。根据 void return 类型,您 @JmsListener 是单向处理程序。入站网关用于请求-回复场景

从那里我假设你真的没有 return 来自你最新的处理程序的任何东西。有一个 JMS 线程被白白阻塞了。