举个例子:
from("seda:data").log("data added to queue")
.setHeader("CamelHttpMethod", constant("POST"))
.setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
.process(new Processor() {
public void process(Exchange exchange) throws Exception {
exchange.setProperty(Exchange.CHARSET_NAME, "UTF-8");
}
})
.recipientList(header(RECIPIENT_LIST))
.ignoreInvalidEndpoints().parallelProcessing();
Run Code Online (Sandbox Code Playgroud)
假设RECIPENT_LIST头只包含一个http端点.对于给定的http端点,应按顺序处理消息,但可以并行处理不同端点的两条消息.
基本上,我想知道是否有任何措施可以改善性能.例如,使用concurrentConsumers会有帮助吗?
并发消费者> 1的SEDA绝对有助于提高吞吐量,因为它允许多个线程并行运行...但是你需要实现自己的锁定机制,以确保在给定的给定的http端点上只有一个线程时间
否则,以下是您的选项概述:http://camel.apache.org/parallel-processing-and-ordering.html
简而言之,如果您可以使用JMS,那么请考虑使用ActiveMQ消息组作为其简单易用的用途,并且专门针对此用例(并行处理,但是通过消息组进行单线程处理等).
| 归档时间: |
|
| 查看次数: |
1419 次 |
| 最近记录: |