1

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

旧版本的配置文件之一是这样的:

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

我在这个链接上的骆驼文档中看到的是,有可能配置与旧版本中基本相同的东西。但后来我被困在了id球场上。它不见了,但有一个属性camel.threadpool.config,解释听起来是我需要的(为特定的线程池配置文件添加配置(继承默认值)),但到目前为止,我一直在努力使用它。我试过这样的事情:

camel:
  threadpool:
    pool-size: 10
    max-pool-size: 20
    max-queue-size: 1000
    rejected-policy: discardoldest
    config:
      id: "myThreadPoolProfile"

我收到以下错误:

Description:

Failed to bind properties under 'camel.threadpool.config.id' to org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties:

    Reason: No converter found capable of converting from type [java.lang.String] to type [org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties]

我想我不明白这个 Spring Boot 配置是如何工作的。

4

2 回答 2

1

好的,我找到了答案,或者最好在这里举个例子。所以我试图做的语法如下:

camel:
  threadpool:
    pool-size: 10
    max-pool-size: 20
    max-queue-size: 1000
    rejected-policy: discardoldest
    config[myThreadPoolProfile]:
      id: "myThreadPoolProfile"
于 2020-08-31T13:10:26.890 回答
0

如果您仔细注意到您尝试将字符串映射到属性(映射)的错误。

请参阅下文,配置图中没有可用的此类属性,因此它失败了。

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

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

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

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

于 2020-08-30T21:30:44.313 回答