【发布时间】:2014-11-27 23:46:09
【问题描述】:
我正在使用 Camel 从 Amazon SQS 队列中读取消息,进行一些 CPU 密集型处理,然后将它们放在另一个 SQS 队列中。 Camel 正在通过 maven 插件调用,使用 mvn camel:run。
在具有多个内核的服务器上运行时,Camel 似乎只使用单个内核来处理消息(通过监控所有内核的 CPU 利用率观察到)。 如何利用所有可用的内核?
我尝试过的事情:
- 运行多个 JVM 实例(例如,通过并行运行多个
mvm camel:run作业)。这可行,但似乎并不理想。 - 在消费者上设置
maxMessagesPerPoll=10。似乎没有什么不同。
有问题的路线:
<route id="marctomods" errorHandlerRef="eh">
<from uri="aws-sqs://{{sqs.environment}}-normalize-marcxml?accessKey=${access.key}&secretKey=${secret.key}&amazonSQSClient=#sqsClient&maxMessagesPerPoll=10" />
<process ref="modsProcessor"/>
<to uri="aws-sqs://{{sqs.environment}}-enrich?accessKey=${access.key}&secretKey=${secret.key}&amazonSQSClient=#sqsClient" />
</route>
【问题讨论】:
标签: parallel-processing apache-camel amazon-sqs