我在我的项目中使用ProducerTemplate并对性能有一些担忧
@Produce
protected ProducerTemplate template;
并用作
String response = template.requestBody("http4://hostToBeCalled/v1/dogs",MESSAGE_BODY,String.class);
在我的情况下,包含组件(http4)的端点在初始化时是未知的,我正在使用生成器模板来解决它。我看到以这种方式使用模板的问题,因为每次调用requestBody时都会创建和销毁使用者(http4)。
是否有其他人也看到了它的潜在性能问题,或者可能提出更好的解决方案?
答案 0 :(得分:0)
正如您所说,如果处理不当,生产模板可能会影响性能。
您可以使用收件人列表,该列表将在运行时派生端点。您可以使用一些逻辑来计算端点并将其分配给交换头或属性。收件人列表可以使用该标头/属性在运行时派生端点。
如果您仍坚持使用ProducerTemplate,因为您的用例可能会坚持, - 为了获得更好的性能,您可以将生产者模板实例注入IOC容器并让该容器处理其生命周期。
参考:http://camel.apache.org/why-does-camel-use-too-many-threads-with-producertemplate.html