35.3. 组件选项
Netty 组件支持 73 选项,如下所示。
Name | 描述 | 默认 | 类型 |
---|---|---|---|
configuration (common) | 在创建端点时,使用 NettyConfiguration 作为配置。 | NettyConfiguration | |
disconnect (common) | 使用后是否立即断开(关闭)与 Netty Channel 的连接。可用于使用者和制作者。 | false | 布尔值 |
keepAlive (common) | 将 设置为,以确保因为不活跃而关闭套接字。 | true | 布尔值 |
reuseAddress (common) | 设置 以便促进套接字多路复用. | true | 布尔值 |
reuseChannel (common) | 此选项允许制作者和消费者(在客户端模式中)在处理 Exchange 的生命周期中重复使用相同的 Netty Channel。如果您需要在 Camel 路由中多次调用服务器,并且想要使用相同的网络连接,这很有用。当使用此功能时,在 Exchange 完成后,频道不会返回到连接池,如果断开连接选项被设置为 true,则频道不会返回到连接池。重复使用的频道作为带有键 NettyConstants#NETTY_CHANNEL 的交换属性存储在 Exchange 中,也可以在路由过程中获取频道并使用它来使用它。 | false | 布尔值 |
sync (common) | 将 设置为将端点设置为单向或请求响应。 | true | 布尔值 |
tcpNoDelay (common) | 设置 以提高 TCP 协议性能。 | true | 布尔值 |
bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由 Error Handler,这意味着在消费者尝试获取传入的消息时发生任何异常,或像这样一样处理,消息现在将被作为消息进行处理,并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 处理异常,该处理程序将记录在 WARN 或 ERROR 级别并忽略。 | false | 布尔值 |
broadcast (consumer) | 设置 以选择 UDP 上的多播。 | false | 布尔值 |
clientMode (consumer) | 如果 clientMode 为 true,netty 消费者将地址连接为 TCP 客户端。 | false | 布尔值 |
reconnect (consumer) | 仅在使用者中的 clientMode 中使用,如果启用,消费者会尝试在断开连接时重新连接。 | true | 布尔值 |
reconnectInterval (consumer) | 如果重新连接,并且启用了 clientMode。尝试重新连接的时间间隔(以 milli 秒为单位)。 | 10000 | int |
backlog (consumer (advanced)) | 允许为 netty 消费者(server)配置积压。请注意,积压只是取决于操作系统的最佳工作。将此选项设置为 200、500 或 1000 之类的值,告知 TCP 堆栈在未配置此选项时接受队列的时长,如果不配置这个选项,则后端日志依赖于 OS 设置。 | int | |
bossCount (consumer (advanced)) | 当 netty 在 nio 模式上工作时,它使用 Netty 中的默认 位于Count 参数,即 1。用户可以使用此选项覆盖 Netty 的默认 bossCount。 | 1 | int |
bossGroup (consumer (advanced)) | 设置 BossGroup,它们可用于处理 NettyEndpoint 之间的服务器端的新连接。 | EventLoopGroup | |
disconnectOnNoReply (consumer (advanced)) | 如果启用了同步,则此选项将指定 NettyConsumer,如果它应该断开连接,没有回复回复。 | true | 布尔值 |
executorService (consumer (advanced)) | 使用给定的 EventExecutorGroup。 | EventExecutorGroup | |
maximumPoolSize (consumer (advanced)) | 为 netty consumer 排序线程池设置最大线程池大小。默认大小为 2 x cpu_core 加 1。将此值设置为 eg 10 然后使用 10 个线程,除非 2 x cpu_core 加 1 是更高的值,然后会被覆盖并使用。例如,如果存在 8 个内核,则消费者线程池为 17。此线程池用于路由 Camel 从 Netty 接收的消息。我们使用单独的线程池来确保消息的顺序以及某些消息将阻止,那么网络工作线程(事件循环)将会受到影响。 | int | |
nettyServerBootstrapFactory (consumer (advanced)) | 使用自定义 NettyServerBootstrapFactory。 | NettyServerBootstrapFactory | |
networkInterface (consumer (advanced)) | 在使用 UDP 时,此选项可根据其名称指定网络接口,如 eth0 来加入多播组。 | 字符串 | |
noReplyLogLevel (consumer (advanced)) | 如果启用了同步,则此选项指定在日志记录没有回复时要使用的 NettyConsumer。 枚举值:
| WARN | LoggingLevel |
serverClosedChannelExceptionCaughtLogLevel (consumer (advanced)) | 如果服务器(NettyConsumer)捕获 java.nio.channels.ClosedChannelException,则使用这个日志记录级别登录。这用于避免记录关闭频道例外,因为客户端可以断开,然后在 Netty 服务器中造成意外的异常。 枚举值:
| DEBUG | LoggingLevel |
serverExceptionCaughtLogLevel (consumer (advanced)) | 如果服务器(NettyConsumer)捕获异常,则使用此日志记录级别记录。 枚举值:
| WARN | LoggingLevel |
serverInitializerFactory (consumer (advanced)) | 使用自定义 ServerInitializerFactory。 | ServerInitializerFactory | |
usingExecutorService (consumer (advanced)) | 是否使用排序的线程池,确保事件在同一频道中按顺序处理。 | true | 布尔值 |
connectTimeout (producer) | 等待套接字连接可用的时间。值以毫秒为单位。 | 10000 | int |
lazyStartProducer (producer) | 制作者是否应该启动 lazy(在第一个消息上)。通过启动 lazy,您可以使用它来允许 CamelContext 和路由在启动期间启动,否则在启动期间出现问题,并导致路由启动失败。通过将这个启动延迟到 lazy 后,可以在通过 Camel 的路由错误处理程序路由消息期间处理启动失败。注意在处理第一个消息时,创建并启动制作者可能花费较少的时间,从而延长处理的总处理时间。 | false | 布尔值 |
requestTimeout (producer) | 允许在调用远程服务器时为 Netty producer 使用超时。默认情况下,不使用超时。该值在 milli 秒内,因此 eg 30000 为 30 秒。requestTimeout 使用 Netty 的 ReadTimeoutHandler 触发超时。 | long | |
clientInitializerFactory (producer (advanced)) | 使用自定义 ClientInitializerFactory。 | ClientInitializerFactory | |
correlationManager (producer (advanced)) | 要使用自定义关联管理器来管理请求和回复消息的方式,在将请求/回复消息与 netty producer 搭配使用时进行映射。只有在您有方法将请求与回复请求(如请求和回复消息中都存在关联 id 时)进行使用。如果您希望在 netty 在同一频道(也称为连接)上的多个并发信息上,可以使用这个信息。当这样做时,您必须有关联请求和回复消息的方法,以便您可以在航班的 Camel Exchange 上存储正确的回复,然后再继续路由。我们建议在构建自定义关联管理器时扩展 TimeoutCorrelationManagerSupport。这为需要实施的超时和其他复杂性提供支持。如需了解更多详细信息,请参阅 producerPoolEnabled 选项。 | NettyCamelStateCorrelationManager | |
lazyChannelCreation (producer (advanced)) | 如果远程服务器在 Camel 制作者启动时未启动并运行,可以先创建频道来避免异常。 | true | 布尔值 |
producerPoolEnabled (producer (advanced)) | 制作者池是否启用。重要信息:如果您关闭此关闭,那么将使用一个共享连接用于制作者(如果您正在执行请求/回复)。这意味着,如果回复返回异常,则存在交集响应的问题。因此,您需要在请求和回复消息中有一个关联 id,以便您可以正确地将回复与负责在 Camel 中处理消息的 Camel 回调相关联。要这样做,您需要将 NettyCamelStateCorrelationManager 作为关联管理器实施,并通过 correlationManager 选项进行配置。如需了解更多详细信息,请参阅 correlationManager 选项。 | true | 布尔值 |
producerPoolMaxIdle (producer (advanced)) | 设置池中空闲实例的数量。 | 100 | int |
producerPoolMaxTotal (producer (advanced)) | 设置可由池分配的对象数量(签出到客户端,或者在给定时间闲置等待签出)。在没有限制的情况下使用负值。 | -1 | int |
producerPoolMinEvictableIdle (producer (advanced)) | 在对象满足闲置对象驱除前,对象可能会处于空闲时间(millis)的最少时间(以 millis)设置。 | 300000 | long |
producerPoolMinIdle (producer (advanced)) | 在驱除器线程(如果活跃)生成新对象前,设置制作池中允许的实例的最小数量。 | int | |
udpConnectionlessSending (producer (advanced)) | 此选项支持 udp 发送较少连接,这是实际触发和忘记。连接的 udp 会发送 PortUnreachableException(如果没有这些端口侦听接收端口)。 | false | 布尔值 |
useByteBuf (producer (advanced)) | 如果 useByteBuf 为 true,netty producer 会在发送消息正文前将消息正文转变为 ByteBuf。 | false | 布尔值 |
hostnameVerification (安全性) | 要在 SSLEngine 上启用/禁用主机名验证。 | false | 布尔值 |
allowSerializedHeaders (advanced) | 仅在 transferExchange 为 true 时使用 TCP。当设置为 true 时,标头和属性中的 serializable 对象将添加到交换中。否则,Camel 将排除任何非序列化对象,并将其记录在 WARN 级别。 | false | 布尔值 |
autowiredEnabled (advanced) | 是否启用自动。这用于自动自动自动选项(选项必须标记为 autowired),方法是在 registry 中查找是否有匹配的类型实例,然后在组件上进行配置。这可用于自动配置 JDBC 数据源、JMS 连接工厂、AWS 客户端等。 | true | 布尔值 |
channelGroup (advanced) | 使用显式 ChannelGroup。 | ChannelGroup | |
nativeTransport (advanced) | 是否使用原生传输,而不是 NIO。原生传输利用主机操作系统,且仅在某些平台上受支持。需要为您要使用的主机操作系统添加 netty JAR。要查看更多详细信息,请访问: | false | 布尔值 |
选项 (高级) | 允许使用 选项作为前缀来配置额外的 netty 选项。例如,option.child.keepAlive=false,以设置 netty 选项 child.keepAlive=false。有关可以使用的可能选项,请参阅 Netty 文档。 | map | |
receiveBufferSize (advanced) | 要在入站通信中使用的 TCP/UDP 缓冲大小。大小为字节。 | 65536 | int |
receiveBufferSizePredictor (advanced) | 配置缓冲区大小预测器。请参阅 Jetty 文档和这个邮件线程的详细信息。 | int | |
sendBufferSize (advanced) | 在出站通信期间使用的 TCP/UDP 缓冲大小。大小为字节。 | 65536 | int |
transferExchange (advanced) | 仅用于 TCP。您可以通过线路来传输交换,而不是只是正文。以下字段会被传输:在正文、传出正文、错误正文、标题、错误标头、交换属性、交换异常。这要求对象可以被序列化。Camel 将排除任何非序列化对象,并将其记录在 WARN 级别。 | false | 布尔值 |
udpByteArrayCodec (advanced) | 仅限 UDP。如果启用使用字节阵列代码而不是 Java 序列化协议。 | false | 布尔值 |
workerCount (advanced) | 当 netty 在 nio 模式工作时,它使用 Netty(这是 cpu_core_threads x 2)的默认 workerCount 参数。用户可以使用此选项覆盖 Netty 的默认 workerCount。 | int | |
workerGroup (advanced) | 使用显式 EventLoopGroup 作为 scanner 线程池。例如,若要与多个使用者或制作者共享一个线程池。默认情况下,每个消费者或制作者都有自己的 worker 池,有 2 个 CPU 数量核心线程。 | EventLoopGroup | |
allowDefaultCodec (codec) | 如果既是,netty 组件都会安装一个默认的 codec,则 encoder/decoder 是 null,文本行是 false。将 allowDefaultCodec 设置为 false 可防止 netty 组件作为过滤器链中的第一个元素安装默认 codec。 | true | 布尔值 |
autoAppendDelimiter (codec) | 在使用文本 codec 发送时,是否自动附加缺少的最终分隔符。 | true | 布尔值 |
decoderMaxLineLength (codec) | 用于文本行代码的最大行长度。 | 1024 | int |
decoders (codec) | 要使用的解码器列表。您可以使用带有用逗号分开的值的 String,并在 Registry 中查找值。只需记得使用 # so Camel 知道它应该查找的值。 | list | |
delimiter (codec) | 用于文本行代码的分隔符。可能的值有 LINE 和 NULL。 枚举值:
| 行 | TextLineDelimiter |
encoders (codec) | 要使用的编码器列表。您可以使用带有用逗号分开的值的 String,并在 Registry 中查找值。只需记得使用 # so Camel 知道它应该查找的值。 | list | |
encoding (codec) | 用于文本代码的编码(一个 charset 名称)。如果没有提供,Camel 将使用 JVM 默认 Charset。 | 字符串 | |
textline (codec) | 仅用于 TCP。如果没有指定 codec,您可以使用此标志来指示基于文本的 codec;如果没有指定或值为 false,则假设 Object Serialization 通过 TCP - 但是,默认情况下只允许 Strings 进行序列化。 | false | 布尔值 |
enabledProtocols (security) | 使用 SSL 时要启用哪些协议。 | TLSv1,TLSv1.1,TLSv1.2 | 字符串 |
keyStoreFile (security) | 用于加密的客户端侧证书密钥存储。 | File | |
keyStoreFormat (security) | 用于有效负载加密的密钥存储格式。若未设置,则默认为 JKS。 | 字符串 | |
keyStoreResource (security) | 用于加密的客户端侧证书密钥存储。从 classpath 中默认加载,但您可以使用 classpath:、file: 或 http: 前缀来从不同的系统加载资源。 | 字符串 | |
needClientAuth (security) | 配置服务器在使用 SSL 时是否需要客户端身份验证。 | false | 布尔值 |
密语 (安全性) | 要使用的密码设置来加密/解密使用 SSH 发送的有效负载。 | 字符串 | |
securityProvider (security) | 用于有效负载加密的安全供应商。如果没有设置,则默认为 SunX509。 | 字符串 | |
SSL (安全性) | 设置,以指定是否将 SSL 加密应用到此端点。 | false | 布尔值 |
sslClientCertHeaders (security) | 在 SSL 模式中启用和启用后,Netty consumer 将增强 Camel 消息以及包含客户端证书信息(如主题名称、签发者名称、序列号和有效日期范围)的信息。 | false | 布尔值 |
sslContextParameters (security) | 使用 SSLContextParameters 配置安全性。 | SSLContextParameters | |
sslHandler (security) | 对可用于返回 SSL 处理程序的类的引用。 | SslHandler | |
trustStoreFile (security) | 用于加密的服务器端证书密钥存储。 | File | |
trustStoreResource (security) | 用于加密的服务器端证书密钥存储。从 classpath 中默认加载,但您可以使用 classpath:、file: 或 http: 前缀来从不同的系统加载资源。 | 字符串 | |
useGlobalSslContextParameters (security) | 启用使用全局 SSL 上下文参数。 | false | 布尔值 |