48.8. Spring Boot Auto-Configuration
当在 Spring Boot 中使用 paho-mqtt5 时,请确保使用以下 Maven 依赖项来支持自动配置:
<dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-paho-mqtt5-starter</artifactId> </dependency>
组件支持 33 选项,如下所列。
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
camel.component.paho-mqtt5.automatic-reconnect | 如果连接丢失,设置客户端是否自动尝试重新连接到服务器。如果设置为 false,客户端不会在连接丢失时尝试自动连接到服务器。如果设置为 true,如果连接丢失,客户端会尝试重新连接服务器。它初始会在尝试重新连接前等待 1 秒,对于每个失败的尝试,其延长会加倍,指定 2 分钟为止,此时,延迟会一直为 2 分钟。 | true | 布尔值 |
camel.component.paho-mqtt5.autowired-enabled | 是否启用自动关闭。这用于自动关闭选项(选项必须标记为 autowired),方法是在 registry 中查找查找是否有单个匹配类型实例,然后在组件上配置。这可以用于自动配置 JDBC 数据源、JMS 连接工厂、AWS 客户端等。 | true | 布尔值 |
camel.component.paho-mqtt5.bridge-error-handler | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
camel.component.paho-mqtt5.broker-url | mq 代理的 URL。 | tcp://localhost:1883 | 字符串 |
camel.component.paho-mqtt5.clean-start | 设置客户端和服务器是否应该在重启和重新连接后记住状态。如果设置为 false,客户端和服务器在重启客户端后维护状态,则服务器和客户端的连接。维护状态 :消息交付将可靠满足指定的 QOS,即使客户端、服务器或连接重启也是如此。服务器会将订阅视为 durable。如果设置为 true,则客户端和服务器在重启客户端后不维护状态,服务器或连接将不会被维护。这意味着,如果客户端、服务器或连接重启,则无法维护发送到指定的 QOS 的消息。服务器会将订阅视为不可durable。 | true | 布尔值 |
camel.component.paho-mqtt5.client | 使用共享的 Paho 客户端。选项是 org.eclipse.paho.mqttv5.client.MqttClient 类型。 | MqttClient | |
camel.component.paho-mqtt5.client-id | MQTT 客户端标识符。标识符必须是唯一的。 | 字符串 | |
camel.component.paho-mqtt5.configuration | 使用共享 Paho 配置。选项是 org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration 类型。 | PahoMqtt5Configuration | |
camel.component.paho-mqtt5.connection-timeout | 设置连接超时值。这个值以秒为单位定义客户端要等待与 MQTT 服务器的网络连接的最大时间间隔。默认超时为 30 秒。0 代表禁用超时处理意味着客户端将等待网络连接成功或失败。 | 30 | 整数 |
camel.component.paho-mqtt5.custom-web-socket-headers | 为 WebSocket 连接设置自定义 WebSocket 标头。 | Map | |
camel.component.paho-mqtt5.enabled | 是否启用 paho-mqtt5 组件的自动配置。这默认是启用的。 | 布尔值 | |
camel.component.paho-mqtt5.executor-service-timeout | 在强制终止前,设置 executor 服务在终止时应等待的时间(以秒为单位)。除非需要修改这个值,否则不建议更改这个值。 | 1 | 整数 |
camel.component.paho-mqtt5.file-persistence-directory | 文件持久性使用的基本目录。默认将使用 user 目录。 | 字符串 | |
camel.component.paho-mqtt5.https-hostname-verification-enabled | 是否启用 SSL HostnameVerifier。默认值为 true。 | true | 布尔值 |
camel.component.paho-mqtt5.keep-alive-interval | 设置保留间隔。这个值(以秒为单位)定义发送或接收消息之间的最大时间间隔。它可让客户端检测服务器是否不再可用,而无需等待 TCP/IP 超时。客户端将确保每个情况下至少有一个消息在网络间传输。如果在时间段内没有与数据相关的消息,客户端会发送一个非常小的 ping 消息,服务器将确认。0 代表禁用客户端中的 keepalive 处理。默认值为 60 秒。 | 60 | 整数 |
camel.component.paho-mqtt5.lazy-start-producer | 生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 CamelContext 和路由在生成者启动期间启动,并导致路由启动失败。通过懒惰启动,启动失败可以在路由信息时通过 Camel 的路由错误处理程序进行处理。请注意,在处理第一个消息时,创建并启动生成者可能需要稍等时间,并延长处理的总处理时间。 | false | 布尔值 |
camel.component.paho-mqtt5.max-reconnect-delay | 获取在重新连接之间等待的最大时间(以 millis 为单位)。 | 128000 | 整数 |
camel.component.paho-mqtt5.password | 用于针对 MQTT 代理进行身份验证的密码。 | 字符串 | |
camel.component.paho-mqtt5.persistence | 要使用的客户端持久性 - 内存或文件。 | PahoMqtt5Persistence | |
camel.component.paho-mqtt5.qos | 客户端服务质量(0-2)。 | 2 | 整数 |
camel.component.paho-mqtt5.receive-maximum | 设置接收的最大值。这个值代表了客户端同时处理的 QoS 1 和 QoS 2 出版物的限制。没有机制来限制服务器可能会尝试发送的 QoS 0 出版物数量。默认值为 65535。 | 65535 | 整数 |
camel.component.paho-mqtt5.retained | retain 选项。 | false | 布尔值 |
camel.component.paho-mqtt5.server-u-r-is | 设置客户端可以连接到的一个或多个 serverURI 的列表。多个服务器可以用逗号分开。每个 serverURI 指定客户端可以连接的服务器的地址。两种类型的连接是 TCP 连接的 tcp://,对于 SSL/TLS 保护的 TCP 连接支持 ssl://。例如: tcp://localhost:1883 ssl://localhost:8883 如果未指定端口,对于 tcp:// URI,它将默认为 1883,对于 ssl:// URI,将默认为 1883。如果设置了 serverURIs,它会覆盖在 MQTT 客户端构造器上传递的 serverURI 参数。当尝试连接启动时,客户端将从列表中的第一个 serverURI 开始,并通过列表进行工作,直到与服务器建立连接。如果无法向任何服务器进行连接,则连接尝试会失败。指定客户端可以连接到的服务器列表具有多个用途:高可用性和可靠的消息交付一些 MQTT 服务器支持高可用性功能,其中两个或多个 MQTT 服务器共享状态。MQTT 客户端可以连接到任何相等的服务器,并保证无论客户端连接到哪个服务器,消息都可以可靠交付且可暂停订阅。如果需要具有危险的订阅和/或可靠的消息发送,则 cleansession 标志必须设置为 false。可能需要指定一组不相等的服务器(如在高可用性选项中)。因为在服务器间没有状态共享可靠的消息交付,因此没有可用的订阅无效。如果使用 hunt 列表模式,必须将 cleansession 标志设置为 true。 | 字符串 | |
camel.component.paho-mqtt5.session-expiry-interval | 设置 Session Expiry Interval。这个值(以秒为单位)定义代理在客户端断开连接后将保持会话的最长时间。如果客户端打算稍后连接到服务器,则客户端应仅与较长的会话过期间隔连接。默认情况下,这个值为 -1,因此不会发送,在这种情况下,会话不会过期。如果发送 0,则会话将在网络连接关闭后立即结束。当客户端确定它不再可用于会话时,它应该断开 Session Expiry Interval 设置为 0。 | -1 | Long |
camel.component.paho-mqtt5.socket-factory | 设置要使用的 SocketFactory。这允许应用程序在创建网络套接字时应用自己的策略。如果使用 SSL 连接,可以使用 SSLSocketFactory 提供特定于应用程序的安全设置。选项是 javax.net.SocketFactory 类型。 | SocketFactory | |
camel.component.paho-mqtt5.ssl-client-props | 设置连接的 SSL 属性。请注意,只有在有 Java 安全套接字扩展(JSSE)的实现时才有效这些属性。如果设置了自定义 SocketFactory,则不会使用这些属性。可以使用以下属性: com.ibm.ssl.protocol one of 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 存储,如 PKCS12、JKS 或 JCEKS. com.ibm.ssl.keyStoreProvider 存储提供程序,如 IBMJCE 或 IBMJCEFIPS. com.ibm.ssl.trustStore 包含您希望 TrustManager 使用的 KeyStore 对象的名称。com.ibm.ssl.trustStorePassword 要使用的 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-mqtt5.ssl-hostname-verifier | 为 SSL 连接设置 HostnameVerifier。请注意,它会在连接的握手后使用,您应该在验证主机名错误时自己执行操作。没有默认的 HostnameVerifier。选项是 javax.net.ssl.HostnameVerifier 类型。 | HostnameVerifier | |
camel.component.paho-mqtt5.user-name | 用于针对 MQTT 代理进行身份验证的用户名。 | 字符串 | |
camel.component.paho-mqtt5.will-mqtt-properties | 为连接设置 Last Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布一条消息。为消息设置的 mq 属性。选项是 org.eclipse.paho.mqttv5.common.packet.MqttProperties 类型。 | MqttProperties | |
camel.component.paho-mqtt5.will-payload | 为连接设置 Last Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布一条消息。消息的字节有效负载。 | 字符串 | |
camel.component.paho-mqtt5.will-qos | 为连接设置 Last Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布一条消息。发布消息的服务质量(0、1 或 2)。 | 1 | 整数 |
camel.component.paho-mqtt5.will-retained | 为连接设置 Last Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布一条消息。是否应保留消息。 | false | 布尔值 |
camel.component.paho-mqtt5.will-topic | 为连接设置 Last Will and Testament (LWT)。如果此客户端意外丢失了与服务器的连接,服务器将使用提供的详细信息向自己发布一条消息。要发布到的主题。 | 字符串 |