Приложение верблюда перестает отвечать после определенных подключений http - PullRequest
0 голосов
/ 07 декабря 2018

У нас есть приложение на верблюде.Файл контекста Camel:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:camel="http://camel.apache.org/schema/spring"
       xsi:schemaLocation="
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

<camelContext id="CamelContext" xmlns="http://camel.apache.org/schema/spring" autoStartup="true">
    <properties>
        <property key="http.keepAlive" value="true"/>
    </properties>

    <threadPoolProfile id="profile"
                       defaultProfile="true"
                       keepAliveTime="30"
                       maxPoolSize="1500"
                       rejectedPolicy="DiscardOldest"
                       poolSize="1000"></threadPoolProfile>
    <onException>
        <exception>com.fasterxml.jackson.databind.exc.InvalidFormatException</exception>
        <redeliveryPolicy maximumRedeliveries="0"/>
        <handled>
            <constant>true</constant>
        </handled>
        <to uri="bean:jacksonMappingExceptionHandler" />
        <process ref="httpResponseTransformer"/>
    </onException>

<restConfiguration component="jetty" bindingMode="json" contextPath="/app" port="9886" apiContextPath="/v1/api-doc" enableCORS="true">
    <dataFormatProperty key="include" value="NON_NULL"></dataFormatProperty>
    <apiProperty key="api.title" value="Application Service"/>
    <apiProperty key="api.version" value="1.0.0"/>
    <apiProperty key="cors" value="true"/>

</restConfiguration>

<!-- defines the rest services using the context-path /api -->

<rest path="/v1/abc" consumes="application/json" produces="application/json">

    <description>Abc</description>

    <post type="com.Request" outType="com.Response">
        <to uri="direct-vm:JettyHttp"/>
    </post>

</rest>

    <rest path="/api/status"   produces="application/json">
        <description>Application Status</description>
        <get outType="com.StatusResponse">
            <description>Get Status</description>
            <to uri="direct-vm:status"/>
        </get>
    </rest>

</camelContext>

</beans>

Некоторые конфигурации загружаются из БД.Из-за безопасности я не смогу публиковать полный код здесь.

Мы написали сценарии автоматизации для проверки проверок по запросу.В отдельных спецификациях у нас более 200 сценариев.

Проблема: После определенного количества запросов http к uri приложения перестают отвечать.Я добавил свойство keepAlive, а также конфигурацию пула потоков в CamelContext.

Однако ни один из них не работает.Пожалуйста, предложите мне немного поработать.

Заранее спасибо.

...