JBoss Предохранитель и масштабируемость - PullRequest
0 голосов
/ 05 июля 2019

Мы разрабатываем веб-сервис SOAP с Jboss Fuse 7.3;- он получает много клиентских запросов, - ответ клиента состоит из нескольких внутренних ответов, полученных соединителями;- каждый соединитель имеет свой маршрут и свою очередь, а его процессор ссылок синхронно вызывает удаленного поставщика;- по основному маршруту используется receentList для отправки клиентского запроса в очереди Connector;брокер сообщений - activeMQ - в списке получателей есть компонент-агрегатор для сбора ответов коннектора, агрегирования их для получения окончательного ответа для клиента;

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

Лучше 1) один camelContext, сделав из него только одно изображение, которое будетpod в OpenShift, а затем будет реализовано масштабирование, дублирующее большее количество раз pod, или, 2) один camelContext, создающий больше изображений, по одному для каждого маршрута, так что определенно больше изображений, которые будут масштабироваться независимо или, 3) больше «одного маршрута»camelContexts, создавая больше изображений, по одному для каждого camelContext, поэтому определенно больше изображений, которые будут масштабироваться независимо

Большое спасибо за каждый совет или предложение, которое вы нам дадите, чтобы сделать правильный выбор

этоконтекстный раздел верблюда нашего тестового проекта:

<camelContext id="adea-example-context" xmlns="http://camel.apache.org/schema/blueprint">
    <route id="WS-Endpoint">
        <from id="_customerServiceRequest" uri="cxf:bean:CXFtest"/>
        <process id="_dopocxf" ref="dpcxf1"/>
        <to id="_toWSImpl" uri="direct:WSImpl"/>
    </route>
    <route id="WS-Impl">
        <from id="_fromWSEndpoint" uri="direct:WSImpl"/>
        <process id="_requestProcess" ref="cli1"/>
        <process id="_addConnectorsInfo" ref="addInf1"/>
        <setHeader headerName="recipientListHeader" id="_setConnectorList">
            <constant>jms:queue:connector1?connectionFactory=#connFact1,jms:queue:connector2?connectionFactory=#connFact1,jms:queue:connector3?connectionFactory=#connFact1</constant>
        </setHeader>
        <recipientList delimiter="," id="_sendToConnector"
            parallelProcessing="true" strategyRef="aggr1">
            <header>recipientListHeader</header>
        </recipientList>
    </route>
    <route id="CONN1-Connector">
        <from id="CONN1_queue" uri="jms:queue:connector1?connectionFactory=#connFact1&amp;concurrentConsumers=5&amp;maxConcurrentConsumers=5"/>
        <process id="CONN1Impl" ref="conn1"/>
    </route>
    <route id="CONN2-Connector">
        <from id="CONN2_queue" uri="jms:queue:connector2?connectionFactory=#connFact1&amp;concurrentConsumers=5&amp;maxConcurrentConsumers=5&amp;requestTimeout=50000"/>
        <process id="CONN2Impl" ref="conn2"/>
    </route>
    <route id="CONN3-Connector">
        <from id="CONN3_queue" uri="jms:queue:connector3?connectionFactory=#connFact1&amp;concurrentConsumers=5&amp;maxConcurrentConsumers=5"/>
        <process id="CONN3Impl" ref="conn3"/>
    </route>
</camelContext>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...