Spring集成InboundAdapter / OutboundAdapter流

时间:2019-02-22 12:45:37

标签: spring-integration spring-integration-dsl spring-integration-amqp

我正在尝试使用Amqp.InboundAdapter从RabbitMQ队列中读取数据,对其进行处理,然后将其推入另一个队列。

所以流程如下:

Amqp.InboundAdapter->服务激活器-> Amqp.outboundAdapter

但是问题是处理速度非常非常慢。 Rabbitmq控制台的传输速率为0.2 /秒或1秒,这非常慢。

是什么原因导致这种缓慢?

IntegrationFlows.from(
            Amqp.inboundAdapter(connectionFactory, IncomingQueue)
                    .configureContainer(c -> {
                        c.concurrentConsumers(classicFlatFileConcurrentConsumers);
                        c.prefetchCount(incomingPrefetchCount);
                        c.adviceChain(new Advice[]{retryOperationsInterceptor});
                        c.channelTransacted(false);
                    })
            )
            .handle(myTransformer)
            .split()
            .filter(ResultDTO.class, dto -> dto.getID() != null)
            .handle(Amqp.outboundAdapter(rabbitTemplate).routingKey(OutputQueueName))
            .get();

请注意,我正在Amqp.OutboundAdapter中使用RabbitTemplate,其usePublisherConnection设置为True。

当我不使用spring集成时,rabbitmq控制台中的消息速率大约为1000 msg / sec。

0 个答案:

没有答案