1
我正在使用Camel从Amazon SQS队列中读取消息,执行一些CPU密集型处理,然后将它们置于另一个SQS队列中。骆驼正在通过maven插件调用,使用mvn camel:run
。如何使用多核处理来自SQS和Camel的消息
在具有多个内核的服务器上运行时,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>
这个工作,虽然我也不得不加maxMessagesPerPoll = 10 SQS消费者获得最佳结果。 – 2014-10-03 15:34:41