2015-12-30 2 views
1

Производительность агрегатора для обработки сообщений JMS вместе с хранилищем сообщений сохранения очень низка. Как и для простого примера, приведенного ниже, обрабатываемые сообщения составляют 25-28 msgs в секунду.Spring Integration Aggregator + JDBC Message Store производительность

Это нормальное поведение? Или я делаю что-то не так?

<!-- ###################### Inbound Message Adapter ####################### --> 
<int-jms:message-driven-channel-adapter 
    id="xmlInboundMessageAdapter" 
    channel="msgUnmarshallingChannel" 
    connection-factory="jmsConnectionFactory" 
    destination="messsageQueue" 
    acknowledge="transacted" 
    concurrent-consumers="1" 
    max-concurrent-consumers="5" 
    auto-startup="true"/> 

<!-- ###################### MSG UN-MARSHALLER ####################### --> 
<int:channel id="msgUnmarshallingChannel" /> 
<int:chain input-channel="msgUnmarshallingChannel" output-channel="msgHeaderEnricherChannel"> 
    <int-xml:unmarshalling-transformer unmarshaller="msgUnmarshaller" /> 
</int:chain> 

<bean id="msgUnmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> 
    <property name="contextPath" value="com.msg.something" /> 
    <property name="supportJaxbElementClass" value="true" /> 
</bean> 

<int:channel id="msgHeaderEnricherChannel" /> 

<!-- ###################### SOME HEADER ENRICHMENT ####################### --> 
<int:chain input-channel="msgHeaderEnricherChannel" output-channel="msgAggreggatorChannel"> 
    <int:header-enricher> 
     <int:header name="CORRELATION_ID" expression="payload.notificationTypeId" /> 
    </int:header-enricher> 
</int:chain> 

<int:channel id="msgAggreggatorChannel" /> 
<int:channel id="msgAggreggatorDiscardChannel" /> 

<!-- ###################### AGGREGATOR WITH PERSISTENCE MSG STORE ####################### --> 
<int:aggregator 
    auto-startup="true" 
    send-timeout="-1" 
    message-store="messageStore" 
    input-channel="msgAggreggatorChannel" 
    output-channel="nullChannel" 
    discard-channel="msgAggreggatorDiscardChannel" 
    correlation-strategy="msgCorrelationStrategy" 
    release-strategy="msgReleaseStrategy" 
    expire-groups-upon-completion="true" /> 

<!-- ###################### MSG STORE ####################### --> 
<bean id="messageStore" class="org.springframework.integration.jdbc.JdbcMessageStore"> 
    <property name="dataSource" ref="dataSourceSPJDBC" /> 
    <property name="lobHandler" ref="oracleLobHandler" /> 
</bean> 

<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" /> 

<bean id="msgCorrelationStrategy" class="org.springframework.integration.aggregator.HeaderAttributeCorrelationStrategy"> 
    <constructor-arg value="CORRELATION_ID" /> 
</bean> 

<bean id="msgReleaseStrategy" class="org.springframework.integration.aggregator.MessageCountReleaseStrategy"> 
    <constructor-arg value="10"/> 
</bean> 

ответ

1

Это известная проблема для очень больших групп.

Какую версию интеграции весны вы используете? В этой области было сделано несколько улучшений, последнее из которых - в 4.2.

Текущая версия 4.2.4; сообщите нам, если вы все еще видите проблемы с этой версией.

 Смежные вопросы

  • Нет связанных вопросов^_^