动态创建HTTP4端点是否正确?

时间:2016-09-13 08:55:59

标签: apache-camel

我在我的项目中使用ProducerTemplate并对性能有一些担忧

@Produce
protected ProducerTemplate template;

并用作

String response = template.requestBody("http4://hostToBeCalled/v1/dogs",MESSAGE_BODY,String.class);

在我的情况下,包含组件(http4)的端点在初始化时是未知的,我正在使用生成器模板来解决它。我看到以这种方式使用模板的问题,因为每次调用requestBody时都会创建和销毁使用者(http4)。

是否有其他人也看到了它的潜在性能问题,或者可能提出更好的解决方案?

1 个答案:

答案 0 :(得分:0)

正如您所说,如果处理不当,生产模板可能会影响性能。

您可以使用收件人列表,该列表将在运行时派生端点。您可以使用一些逻辑来计算端点并将其分配给交换头或属性。收件人列表可以使用该标头/属性在运行时派生端点。

如果您仍坚持使用ProducerTemplate,因为您的用例可能会坚持, - 为了获得更好的性能,您可以将生产者模板实例注入IOC容器并让该容器处理其生命周期。

参考:http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html