вторник, 22 июля 2014 г.

Оптимизация производительности сервиса на уровне Camel


Перейти к концу метаданных
Переход к началу метаданных

Camel Route

Apache Camel позволяет обрабатывать сообщения, поступающие в Camel Route, как в порядке поступления последовательно, так и в параллельном режиме.
Использование параллельного сценария обработки сообщений может дать выйгрыш в производительности приложения в некоторых случаях, например при выполнении разнотипных операций в одном Camel Route.
Для организации параллельной обработки сообщений Camel использует пулы потоков. Параметры пулов управляются профилями пулов, один из которых может быть профилем по умолчанию.

Профиль пула потоков Camel Route по умолчанию
<threadPoolProfile
    id="defaultThreadPoolProfile"
    defaultProfile="true"
    poolSize="10"
    maxPoolSize="20"
    maxQueueSize="1000"/>
Apache Camel Threading Model
Icon
Компоненты роутинга Camel, поддерживающие параллельную обработку сообщений
Icon

NMR

Файл конфигурации ServiceMix org.apache.servicemix.nmr.cfg содержит параметры Normalized Message Router, влияющие на производительность многопоточной обработки сообщений в Camel Route, связанных NMR.
Основным параметром, влияющим на производительность, является corePoolSize, устанавливающий размер пула потоков для NMR Endpoint.
Содержимое org.apache.servicemix.nmr.cfg по умолчанию
corePoolSize=4
maximumPoolSize=-1
queueSize=1024
allowCoreThreadTimeOut=true
keepAliveTime=60000
Ссылка на документацию
Icon

Direct-VM

В случаях, когда взаимодействие между бандлами и Camel Context не пересекает границ одной JVM, связь между потоками обработки сообщений может быть организована при помощи очередей Direct VM.
Ссылка на документацию
Icon
Тип очереди direct-vm был введён в Camel с версии 2.10, что ограничивает его использование в старых версиях контейнеров приложений, таких как Apache ServiceMix 4.4.2.

Комментариев нет:

Отправить комментарий