40.8. Spring Boot Auto-Configuration
在 Spring Boot 中使用 paho 时,请确保使用以下 Maven 依赖项来支持自动配置:
<dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-paho-starter</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-paho-starter</artifactId>
</dependency>
组件支持 32 个选项,如下所列。
名称 | 描述 | 默认 | 类型 |
---|---|---|---|
camel.component.paho.automatic-reconnect | 如果连接丢失,设置客户端是否会自动尝试重新连接到服务器。如果设置为 false,客户端不会在连接丢失时尝试自动重新连接到服务器。如果设置为 true,如果连接丢失,客户端将尝试重新连接到服务器。在尝试重新连接 1 秒前,它会首先等待 1 秒,每次尝试失败的重新连接尝试时,延迟会加倍,直到延迟时间为 2 分钟。 | true | 布尔值 |
camel.component.paho.autowired-enabled | 是否启用自动关闭。这用于自动关闭选项(选项必须标记为 autowired),方法是在 registry 中查找查找是否有单个匹配类型实例,然后在组件上配置。这可以用于自动配置 JDBC 数据源、JMS 连接工厂、AWS 客户端等。 | true | 布尔值 |
camel.component.paho.bridge-error-handler | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
camel.component.paho.broker-url | MQTT 代理的 URL。 | tcp://localhost:1883 | 字符串 |
camel.component.paho.clean-session | 设置客户端和服务器是否应该在重启和重新连接后记住状态。如果设置为 false,则客户端和服务器在重新启动客户端后将保持状态、服务器和连接。维护状态:消息交付将满足指定的 QOS,即使客户端、服务器或连接被重启也是如此。服务器会将订阅视为持久。如果设置为 true,则客户端和服务器在重启客户端、服务器或连接后不会维护状态。这意味着,如果客户端、服务器或连接被重启,则消息发送到指定的 QOS 不能被维护。服务器会将订阅视为不可配置。 | true | 布尔值 |
camel.component.paho.client | 使用共享 Paho 客户端。选项是一个 org.eclipse.paho.client.mqttv3.MqttClient 类型。 | MqttClient | |
camel.component.paho.client-id | MQTT 客户端标识符。标识符必须是唯一的。 | 字符串 | |
camel.component.paho.configuration | 使用共享 Paho 配置。选项是 org.apache.camel.component.paho.PahoConfiguration 类型。 | PahoConfiguration | |
camel.component.paho.connection-timeout | 设置连接超时值。此值以秒为单位测量,定义客户端将等待与 MQTT 服务器的网络连接的最大时间间隔。默认超时为 30 秒。值 0 禁用超时处理,这意味着客户端将等到网络连接成功或失败。 | 30 | 整数 |
camel.component.paho.custom-web-socket-headers | 设置 WebSocket 连接的自定义 WebSocket 标头。选项是一个 java.util.Properties 类型。 | Properties | |
camel.component.paho.enabled | 是否启用 paho 组件的自动配置。这默认是启用的。 | 布尔值 | |
camel.component.paho.executor-service-timeout | 设置在强制终止前 executor 服务在终止时应等待的时间(以秒为单位)。除非绝对确定您需要,否则不建议更改此值。 | 1 | 整数 |
camel.component.paho.file-persistence-directory | 文件持久性使用的基础目录。默认情况下,将使用 user 目录。 | 字符串 | |
camel.component.paho.https-hostname-verification-enabled | 是否启用 SSL HostnameVerifier。默认值为 true。 | true | 布尔值 |
camel.component.paho.keep-alive-interval | 设置 keep alive 间隔。这个值(以秒为单位)定义发送或接收消息之间的最长时间间隔。它可让客户端检测服务器是否不再可用,而无需等待 TCP/IP 超时。客户端将确保至少一条消息在各个网络间传输,并保持上线时间。在一段时间内没有与数据相关的消息,客户端会发送非常小的 ping 消息,服务器将确认。值 0 可禁用客户端中的 keepalive 处理。默认值为 60 秒。 | 60 | 整数 |
camel.component.paho.lazy-start-producer | 制作者是否应启动 lazy (在第一个消息中)。通过启动 lazy,您可以使用此选项来允许 CamelContext 和路由在制作者启动期间启动,并导致路由启动失败。通过将这个启动延迟到延迟,那么可以通过 Camel 的路由错误处理程序路由消息期间,可以处理启动失败。请注意,在处理第一个消息时,创建并启动制作者可能需要稍等时间,并延长处理的总处理时间。 | false | 布尔值 |
camel.component.paho.max-inflight | 设置最大 inflight。请在高流量环境中增加这个值。默认值为 10。 | 10 | 整数 |
camel.component.paho.max-reconnect-delay | 获取在重新连接之间等待的最长时间(在 millis 中)。 | 128000 | 整数 |
camel.component.paho.mqtt-version | 设置 MQTT 版本。默认操作是连接到 3.1.1 版本,如果失败,则回退到 3.1。通过分别使用 MQTT_VERSION_3_1_1 或 MQTT_VERSION_3_1 选项,可以专门选择版本 3.1.1 或 3.1,无回退。 | 整数 | |
camel.component.paho.password | 用于针对 MQTT 代理进行身份验证的密码。 | 字符串 | |
camel.component.paho.persistence | 要使用的客户端持久性 - 内存或文件。 | PahoPersistence | |
camel.component.paho.qos | 客户端服务质量级别(0-2)。 | 2 | 整数 |
camel.component.paho.retained | 保留选项。 | false | 布尔值 |
camel.component.paho.server-u-r-is | 设置客户端可以连接到的一个或多个 serverURIs 列表。可以用逗号分隔多个服务器。每个 serverURI 指定客户端可以连接的服务器的地址。对于 TCP 连接,支持两种连接,tcp:// 用于 TCP 连接,ssl:// 用于 SSL/TLS 保护的 TCP 连接。例如:如果未指定端口,则 tcp://localhost:1883 ssl://localhost:8883 将默认为 tcp:// URIs 的 1883,ssl:// URI 的 8883 将默认为 8883。如果设置了 serverURIs,则会覆盖在 MQTT 客户端构造器上传递的 serverURI 参数。当尝试连接时,客户端将从列表中的第一个 serverURI 开始,并操作列表,直到与服务器建立连接为止。如果无法向任何服务器进行连接,则连接尝试会失败。指定客户端可以连接多个用途的服务器列表:高可用性和可靠的消息发送某些 MQTT 服务器支持高可用性功能,其中两个或多个 MQTT 服务器共享状态。MQTT 客户端可以连接到任何相等的服务器,无论客户端连接到哪个服务器是什么,都可确保消息得到可靠地交付和持久化订阅。如果需要持久化订阅和/或可靠的消息发送,则 cleansession 标志必须设置为 false。可以指定不相等的一组服务器(如高可用性选项中所示)。因为没有状态在服务器间共享,可靠的消息发送和持久化订阅无效。如果使用 hunt 列表模式,则 cleansession 标志必须设置为 true。 | 字符串 | |
camel.component.paho.socket-factory | 设置要使用的 SocketFactory。这允许应用程序在创建网络套接字时应用自己的策略。如果使用 SSL 连接,可以使用 SSLSocketFactory 来提供特定于应用的安全设置。选项是 javax.net.SocketFactory 类型。 | SocketFactory | |
camel.component.paho.ssl-client-props | 设置连接的 SSL 属性。请注意,只有实施 Java 安全套接字扩展(JSSE)时,这些属性才有效。如果设置了自定义 SocketFactory,则不会使用这些属性。可以使用以下属性:com.ibm.ssl.protocol One of: SSL, SSLv3, TLS, TLSv1, SSL_TLS. com.ibm.ssl.contextProvider Underlying JSSE 供应商。例如,IBMJSSE2 或 SunJSSE com.ibm.ssl.keyStore 包含您希望 KeyManager 使用的 KeyStore 对象的文件名称。例如,/mydir/etc/key.p12 com.ibm.ssl.keyStorePassword 是您希望 KeyManager 使用的 KeyStore 对象的密码。密码可以采用纯文本,也可以使用静态方法进行模糊处理:com.ibm.micro.security.Password.obfuscate (char password)。这会使用简单不安全的 XOR 和 Base64 编码机制来混淆密码。请注意,这只是一个简单的 scrambler 来混淆明文密码。com.ibm.ssl.keyStoreType Type of key store,如 PKCS12、JKS 或 JCEKS. com.ibm.ssl.keyStoreProvider Key 存储供应商,如 IBMJCE 或 IBMJCEFIPS. com.ibm .SSL.trustStore 包含信任管理器要使用的 KeyStore 对象的文件名。com.ibm.ssl.trustStorePassword 是您希望 TrustManager 使用的 TrustStore 对象的密码。密码可以采用纯文本,也可以使用静态方法进行模糊处理:com.ibm.micro.security.Password.obfuscate (char password)。这会使用简单不安全的 XOR 和 Base64 编码机制来混淆密码。请注意,这只是一个简单的 scrambler 来混淆明文密码。com.ibm.ssl.trustStoreType 您希望默认 TrustManager 使用的 KeyStore 对象类型。与 keyStoreType. com.ibm.ssl.trustStoreProvider Trust 存储供应商相同,如 IBMJCE 或 IBMJCEFIPS. com.ibm.ssl.enabledCipherSuites A 列表启用了哪些密码。值依赖于提供程序,例如:SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA. com.ibm.ssl.keyManager 设置将用于实例化 KeyManagerFactory 对象的算法,而不使用平台中提供的默认算法。示例值:IbmX509 或 IBMJ9X509. com.ibm.ssl.trustManager 设置用于实例化 TrustManagerFactory 对象的算法,而不使用平台中可用的默认算法。示例值:PKIX 或 IBMJ9X509.选项是一个 java.util.Properties 类型。 | Properties | |
camel.component.paho.ssl-hostname-verifier | 为 SSL 连接设置 HostnameVerifier。请注意,它将在连接的握手后使用,当主机名验证错误时,应自行执行操作。没有默认的 HostnameVerifier。选项是一个 javax.net.ssl.HostnameVerifier 类型。 | HostnameVerifier | |
camel.component.paho.user-name | 用于针对 MQTT 代理进行身份验证的用户名。 | 字符串 | |
camel.component.paho.will-payload | 设置连接的 Last Will 和 Testament (LWT)。如果此客户端意外丢失了服务器的连接,服务器将使用提供的详细信息向其自身发布消息。要发布到消息的字节有效负载的主题。发布消息的服务质量(0、1 或 2)。消息是否应保留。 | 字符串 | |
camel.component.paho.will-qos | 设置连接的 Last Will 和 Testament (LWT)。如果此客户端意外丢失了服务器的连接,服务器将使用提供的详细信息向其自身发布消息。要发布到消息的字节有效负载的主题。发布消息的服务质量(0、1 或 2)。消息是否应保留。 | 整数 | |
camel.component.paho.will-retained | 设置连接的 Last Will 和 Testament (LWT)。如果此客户端意外丢失了服务器的连接,服务器将使用提供的详细信息向其自身发布消息。要发布到消息的字节有效负载的主题。发布消息的服务质量(0、1 或 2)。消息是否应保留。 | false | 布尔值 |
camel.component.paho.will-topic | 设置连接的 Last Will 和 Testament (LWT)。如果此客户端意外丢失了服务器的连接,服务器将使用提供的详细信息向其自身发布消息。要发布到消息的字节有效负载的主题。发布消息的服务质量(0、1 或 2)。消息是否应保留。 | 字符串 |