配置Spring Boot Camel应用程序中的线程池配置。

huangapple go评论113阅读模式
英文:

Configuring thread pool profile in spring boot camel application

问题

我们正在对我们的一个应用程序进行现代化改造,并决定与Apache Camel一起使用Spring Boot。

旧版本的一个配置文件如下所示:

  1. <camel:threadPoolProfile id="myThreadPoolProfile"
  2. poolSize="10" maxPoolSize="20" maxQueueSize="1000" rejectedPolicy="DiscardOldest" />

我在Camel文档的链接中看到,基本上可以配置与旧版本中相同的内容。但是,我在id字段上遇到了问题。它不见了,但是有一个属性camel.threadpool.config,其解释听起来像是我需要的内容(为特定线程池配置添加配置(继承默认值)),但是到目前为止,我很难使用它。我尝试了类似于以下的内容:

  1. camel:
  2. threadpool:
  3. pool-size: 10
  4. max-pool-size: 20
  5. max-queue-size: 1000
  6. rejected-policy: discardoldest
  7. config:
  8. id: "myThreadPoolProfile"

我得到了以下错误:

  1. 错误描述:
  2. 未能将属性绑定到`camel.threadpool.config.id`下的`org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties`
  3. 原因:找不到能够从类型`java.lang.String`转换为类型`org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties`的转换器。

我猜我不太理解这个Spring Boot的配置是如何工作的。

英文:

We are modernizing one of our applications and we decided to use Spring Boot together with Apache Camel.

One of the configuration files from old version has something like this:

  1. <camel:threadPoolProfile id="myThreadPoolProfile"
  2. poolSize="10" maxPoolSize="20" maxQueueSize="1000" rejectedPolicy="DiscardOldest" />

What I saw in camel documentation on this link is that there is possibility to configure basically the same thing we have in old version. But then I got stuck on id field. It's missing, but there is property camel.threadpool.config which explanation sounds something I need (Adds a configuration for a specific thread pool profile (inherits default values)), but so far I am struggling to make a use of it. I tried something like this:

  1. camel:
  2. threadpool:
  3. pool-size: 10
  4. max-pool-size: 20
  5. max-queue-size: 1000
  6. rejected-policy: discardoldest
  7. config:
  8. id: "myThreadPoolProfile"

I am getting following error:

  1. Description:
  2. Failed to bind properties under 'camel.threadpool.config.id' to org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties:
  3. Reason: No converter found capable of converting from type [java.lang.String] to type [org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties]

I guess I don't understand how this spring boot configuration works.

答案1

得分: 1

我找到了一个答案,或者更准确地说是一个例子在这里。因此,我尝试做的事情的语法将如下所示:

  1. camel:
  2. threadpool:
  3. pool-size: 10
  4. max-pool-size: 20
  5. max-queue-size: 1000
  6. rejected-policy: discardoldest
  7. config[myThreadPoolProfile]:
  8. id: "myThreadPoolProfile"
英文:

Ok I found an answer, or better to say example here. So the syntax for what I was trying to do would be following:

  1. camel:
  2. threadpool:
  3. pool-size: 10
  4. max-pool-size: 20
  5. max-queue-size: 1000
  6. rejected-policy: discardoldest
  7. config[myThreadPoolProfile]:
  8. id: "myThreadPoolProfile"

答案2

得分: 0

如果您仔细注意错误,您会注意到您正在尝试将String映射到Properties(Map)。

请注意,在配置映射中没有此类属性,因此它失败了。

我还详细检查了同一类的最新javadoc。您可以参考同样的内容,以检查所有可用的字段。

以下是Spring Boot Camel Starter中可用的属性。

(链接已省略)

英文:

If you carefully notice the error you are trying to map String to Properties(Map).

See below there is no such property available in configuration map hence its failing.

I have also checked in detail with latest javadoc for the same class. You can refer the same to check what all fields are available.

https://javadoc.io/doc/org.apache.camel.springboot/camel-spring-boot/latest/org/apache/camel/spring/boot/threadpool/CamelThreadPoolConfigurationProperties.ThreadPoolProfileConfigurationProperties.html

Below are the available properties in spring boot camel starter.

https://camel.apache.org/camel-spring-boot/latest/spring-boot.html

huangapple
  • 本文由 发表于 2020年8月31日 05:15:45
  • 转载请务必保留本文链接:https://go.coder-hub.com/63662230.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定