拆分 IntegrationFlow 进行测试
Split up an IntegrationFlow for testing
我打算测试 IntegrationFlow
有问题吗?
让我向您介绍一下我打算做什么。
IntegrationFlows
.from(Amqp.inboundAdapter(connectionFactory, queue)
.acknowledgeMode(AcknowledgeMode.AUTO)
.concurrentConsumers(10).prefetchCount(100))
.<byte[], String>transform(String::new)
.transform(objectMapperProcessor::process)
.enrichHeaders(header)
.handle(Amqp.outboundAdapter(amqpTemplate)
.routingKeyExpression("headers.routingKey_delta"))
.get();
这是一个样本IntegrationFlow
我想测试一下。现在,我想通过在每个 transform
和 enrichHeaders
处潜水来测试它。从 Spring Integration
文档中,这样做的方法是拆分流并将消息写入通道,并在后续流中从通道读取。
我的问题是,当我将其拆分为 QueueChannel
或 DirectChannel
时,我是否更改了默认性能?因为现在有一个数据被发送到的额外层,如果我在将数据传递到不同的流时使用错误类型的通道,是否会减慢速度?
嗯,实际上没有任何性能影响。无论如何,通道默认情况下位于端点之间。他们甚至可以访问它们,您已经可以访问它们并进行交互。您甚至可能不需要任何额外的通道和这种流量划分。
另一方面,IntegrationFlow
只是一个逻辑容器,当您出于某种逻辑原因将其中一个划分为多个时,不会再对性能产生任何影响。只是因为目标努力是由端点完成的,而不是流量。
您可能会发现此信息很有用:https://docs.spring.io/spring-integration/docs/5.0.2.RELEASE/reference/html/java-dsl.html#java-dsl-channels
还要注意Spring中的测试框架集成:https://docs.spring.io/spring-integration/docs/5.0.2.RELEASE/reference/html/testing.html#test-context
我打算测试 IntegrationFlow
有问题吗?
让我向您介绍一下我打算做什么。
IntegrationFlows
.from(Amqp.inboundAdapter(connectionFactory, queue)
.acknowledgeMode(AcknowledgeMode.AUTO)
.concurrentConsumers(10).prefetchCount(100))
.<byte[], String>transform(String::new)
.transform(objectMapperProcessor::process)
.enrichHeaders(header)
.handle(Amqp.outboundAdapter(amqpTemplate)
.routingKeyExpression("headers.routingKey_delta"))
.get();
这是一个样本IntegrationFlow
我想测试一下。现在,我想通过在每个 transform
和 enrichHeaders
处潜水来测试它。从 Spring Integration
文档中,这样做的方法是拆分流并将消息写入通道,并在后续流中从通道读取。
我的问题是,当我将其拆分为 QueueChannel
或 DirectChannel
时,我是否更改了默认性能?因为现在有一个数据被发送到的额外层,如果我在将数据传递到不同的流时使用错误类型的通道,是否会减慢速度?
嗯,实际上没有任何性能影响。无论如何,通道默认情况下位于端点之间。他们甚至可以访问它们,您已经可以访问它们并进行交互。您甚至可能不需要任何额外的通道和这种流量划分。
另一方面,IntegrationFlow
只是一个逻辑容器,当您出于某种逻辑原因将其中一个划分为多个时,不会再对性能产生任何影响。只是因为目标努力是由端点完成的,而不是流量。
您可能会发现此信息很有用:https://docs.spring.io/spring-integration/docs/5.0.2.RELEASE/reference/html/java-dsl.html#java-dsl-channels
还要注意Spring中的测试框架集成:https://docs.spring.io/spring-integration/docs/5.0.2.RELEASE/reference/html/testing.html#test-context