我们正在使用Jboss Fuse 7.3开发SOAP Web服务; -它收到很多客户要求, -客户端响应由连接器获得的许多内部响应组成; -每个连接器都有其路由和队列,并且其引用处理器同步调用远程供应商; -主路由使用一个recipentList将客户端请求发送到连接器队列;消息代理处于活动状态 -收件人列表中有一个聚集器bean来收集连接器响应,将其聚集以为客户端做出最终响应;
我们如何扩展此解决方案? 我们的目标是部署到OpenShift,因此我们必须创建一个或多个映像 获得完全可扩展的解决方案的最佳实践是什么?
更好 1)一个camelContext,从中仅生成一张图像,该图像将成为OpenShift中的Pod,然后实现缩放,将Pod复制更多次, 要么, 2)一个camelContext,制作更多图像,每条路线一张,因此肯定会有更多图像单独缩放 要么, 3)更多的“单路” camelContext,生成更多图像,每个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&concurrentConsumers=5&maxConcurrentConsumers=5"/>
<process id="CONN1Impl" ref="conn1"/>
</route>
<route id="CONN2-Connector">
<from id="CONN2_queue" uri="jms:queue:connector2?connectionFactory=#connFact1&concurrentConsumers=5&maxConcurrentConsumers=5&requestTimeout=50000"/>
<process id="CONN2Impl" ref="conn2"/>
</route>
<route id="CONN3-Connector">
<from id="CONN3_queue" uri="jms:queue:connector3?connectionFactory=#connFact1&concurrentConsumers=5&maxConcurrentConsumers=5"/>
<process id="CONN3Impl" ref="conn3"/>
</route>
</camelContext>