camel http4コンポーネントのmaxTotalConnections
とconnectionsPerRoute
を青写真を使用して変更します。camel http4コンポーネントのデフォルトプロパティを青写真を使用してオーバーライド
これを行うことができますか、これをURIオプションとして送信する必要があることを私に教えてもらえますか?
私はラクダラクダがあなたsetup routes using OSGi Blueprintを聞かせん2.16.3
camel http4コンポーネントのmaxTotalConnections
とconnectionsPerRoute
を青写真を使用して変更します。camel http4コンポーネントのデフォルトプロパティを青写真を使用してオーバーライド
これを行うことができますか、これをURIオプションとして送信する必要があることを私に教えてもらえますか?
私はラクダラクダがあなたsetup routes using OSGi Blueprintを聞かせん2.16.3
にしています。また、Property Placeholders with Blueprint valuesを使用することもできます。しかし、それらの値をURIに配置する必要があります。最初のルートは、そのコンポーネントを使用して作成されたときに
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<cm:property-placeholder persistent-id="my-placeholders" update-strategy="reload">
<cm:default-properties>
<cm:property name="maxTotalConnections" value="200"/>
<cm:property name="connectionsPerRoute" value="20"/>
</cm:default-properties>
</cm:property-placeholder>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from uri="timer:test" />
<to uri="http4:localhost:80/resource?maxTotalConnections={{maxTotalConnections}}&connectionsPerRoute={{connectionsPerRoute}}" />
</route>
</camelContext>
</blueprint>
コンポーネントオプションが設定されています
だから、あなたのようなものを使用することができます。そのようなときcreating a new endpointコードで見ると、maxTotalConnectionsとconnectionsPerRouteが設定されている:最初のルートが設定されたら
HttpClientConnectionManager localConnectionManager = clientConnectionManager;
if (localConnectionManager == null) {
// need to check the parameters of maxTotalConnections and connectionsPerRoute
int maxTotalConnections = getAndRemoveParameter(parameters, "maxTotalConnections", int.class, 0);
int connectionsPerRoute = getAndRemoveParameter(parameters, "connectionsPerRoute", int.class, 0);
localConnectionManager = createConnectionManager(createConnectionRegistry(x509HostnameVerifier, sslContextParameters), maxTotalConnections, connectionsPerRoute);
}
は、clientConnectionManagerが設定されています。 ClientConnectionManagerがHttp4コンポーネントの単一インスタンスに結びついているため、最初のパスの後に設定された他のルートでは、これらのオプションは無視されるように見えます。すべてのルートで同じコンポーネントオプションを使用します。
新しいHTTP4コンポーネントをインスタンス化するには、新しいbeanを作成してIDを与えます。これを使用して、さまざまなコンポーネントオプションを持つ複数のhttp4コンポーネントを作成できます。
<bean id="http4-foo" class="org.apache.camel.component.http4.HttpComponent"/>
<bean id="http4-bar" class="org.apache.camel.component.http4.HttpComponent"/>
次に、エンドポイントを設定するときにこれらのIDを使用してください。
<to uri="http4-foo:localhost:80/resource?maxTotalConnections=300"/>
「connectionsPerHost」とは何ですか?私は文書でそれを見つけられませんでした。あなたは 'maxTotalConnections'を意味しますか? – tuk
オオプス、それはちょうど間違いだった。修正されました。 – AndyN
ラクダに複数のルートがある場合は、回答に示されているように、すべてのルートに対して 'maxTotalConnections'を設定する必要がありますか?もしそうなら、あるルートで 'maxTotalConnection'を' x'に、あるルートで 'max'ToConnections'を' y'として与えると、camel-httpルートはどのように動作しますか? – tuk