【问题标题】:Creating HTTP4 Endpoint dynamically is correct?动态创建 HTTP4 Endpoint 是否正确?
【发布时间】:2016-09-15 15:38:34
【问题描述】:

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

@Produce
protected ProducerTemplate template;

并用作

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

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

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

【问题讨论】:

  • 你能详细解释一下你的用例吗?

标签: apache-camel


【解决方案1】:

正如您所说的,producertemplate 如果处理不当可能会影响性能。

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

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

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

【讨论】:

    猜你喜欢
    • 2016-02-07
    • 2011-02-11
    • 2013-07-25
    • 2021-01-10
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    相关资源
    最近更新 更多