242.2. 选项


Netty4 组件支持 6 个选项,如下所列。

名称描述默认值类型

maximumPoolSize (advanced)

EventExecutorGroup 的线程池大小(如果使用)。默认值为 16。

16

int

configuration (advanced)

在创建端点时,使用 NettyConfiguration 作为配置。

 

NettyConfiguration

executorService (advanced)

使用给定的 EventExecutorGroup。

 

EventExecutorGroup

useGlobalSslContext Parameters (security)

启用使用全局 SSL 上下文参数。

false

布尔值

sslContextParameters (security)

使用 SSLContextParameters 配置安全性

 

SSLContextParameters

resolveProperty Placeholders (advanced)

启动时组件是否应解析自身上的属性占位符。只有属于 String 类型的属性才能使用属性占位符。

true

布尔值

Netty4 端点使用 URI 语法进行配置:

netty4:protocol:host:port

使用以下路径和查询参数:

242.2.1. 路径参数(3 参数):

名称描述默认值类型

protocol

必需 要使用的协议,可以是 tcp 或 udp。

 

字符串

主机

必需 主机名。对于消费者,主机名是 localhost 或 0.0.0.0。对于生成者,主机名是要连接的远程主机

 

字符串

端口

需要 主机端口号

 

int

242.2.2. 查询参数(72 参数):

名称描述默认值类型

disconnect (common)

使用后是否从 Netty Channel 断开(关闭)可用于消费者和制作者。

false

布尔值

keepAlive (common)

设置以确保套接字不会因为不活跃而关闭

true

布尔值

reuseAddress (common)

设置为方便套接字多路

true

布尔值

reuseChannel (common)

此选项允许生产者和消费者(在客户端模式中)在处理交换生命周期中重复使用相同的 Netty 频道。如果您需要在 Camel 路由中多次调用服务器,并希望使用相同的网络连接,这非常有用。使用此选项时,通道在 Exchange 完成后不会返回到连接池;如果 disconnect 选项设为 true,则不会断开连接。重复使用的频道作为交换属性存储在 Exchange 上,其键为 NettyConstants#NETTY_CHANNEL,允许您在路由过程中获取频道,并使用它。

false

布尔值

sync (common)

设置将端点设置为单向或请求响应

true

布尔值

tcpNoDelay (common)

设置以提高 TCP 协议性能

true

布尔值

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。

false

布尔值

broadcast (consumer)

设置以选择通过 UDP 的多播

false

布尔值

clientMode (consumer)

如果 clientMode 为 true,则 netty consumer 将地址连接为 TCP 客户端。

false

布尔值

reconnect (consumer)

仅在消费者中的 clientMode 中使用,如果启用,消费者将尝试重新连接

true

布尔值

reconnectInterval (consumer)

如果启用了 reconnect 和 clientMode,则使用。尝试重新连接的时间间隔(以 milli 秒为单位)

10000

int

backlog (consumer)

允许为 netty consumer (server)配置积压。请注意,后端只是根据操作系统的最佳努力。将此选项设置为值(如 200、500 或 1000 )告知 TCP 堆栈如果未配置此选项,则 backlog 依赖于 OS 设置。

 

int

bossCount (consumer)

当 netty 适用于 nio 模式时,它会使用来自 Netty 的默认 bossCount 参数,即 1。用户可以使用此操作覆盖 Netty 的默认 bossCount

1

int

bossGroup (consumer)

设置 BossGroup,可用于处理 NettyEndpoint 中服务器端的新连接

 

EventLoopGroup

disconnectOnNoReply (consumer)

如果启用了同步,这个选项会指定 NettyConsumer (如果应该断开连接,但没有回复来回发)。

true

布尔值

exceptionHandler (consumer)

要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。

 

ExceptionHandler

exchangePattern (consumer)

在消费者创建交换时设置交换模式。

 

ExchangePattern

nettyServerBootstrapFactory (consumer)

使用自定义 NettyServerBootstrapFactory

 

NettyServerBootstrap Factory

networkInterface (consumer)

在使用 UDP 时,可以使用此选项按名称指定网络接口,如 eth0 来加入多播组。

 

字符串

noReplyLogLevel (consumer)

如果启用了同步,这个选项指定 NettyConsumer,在日志没有回复时使用该级别。

WARN

LoggingLevel

serverClosedChannel ExceptionCaughtLogLevel (consumer)

如果服务器(NettyConsumer)捕获 java.nio.channels.ClosedChannelException,则其使用此日志记录级别记录。这用于避免记录关闭的频道异常,因为客户端可能会突然断开连接,然后在 Netty 服务器中造成大量关闭异常。

DEBUG

LoggingLevel

serverExceptionCaughtLog Level (consumer)

如果服务器(NettyConsumer)捕获异常,则使用此日志记录级别记录它。

WARN

LoggingLevel

serverInitializerFactory (consumer)

使用自定义 ServerInitializerFactory

 

ServerInitializer Factory

usingExecutorService (consumer)

是否使用排序的线程池,以确保在同一频道中按顺序处理事件。

true

布尔值

connectTimeout (producer)

等待套接字连接的时间。值以毫秒为单位。

10000

int

requestTimeout (producer)

在调用远程服务器时,允许为 Netty producer 使用超时。默认情况下,不使用超时。该值以秒为单位,因此 eg 30000 为 30 秒。requestTimeout 使用 Netty 的 ReadTimeoutHandler 触发超时。

 

long

clientInitializerFactory (producer)

使用自定义 ClientInitializerFactory

 

ClientInitializer Factory

correlationManager (producer)

使用自定义关联管理器来管理在使用带有 netty producer 的 request/reply 时如何映射请求和回复消息。只有当您有将请求与回复进行映射时(例如,请求和回复信息中存在关联 ID)时,才应使用此请求和回复。如果要在 netty 中在同一频道(aka connection)上有多个并发消息,则可以使用它。在这样做时,您必须有关联请求和回复消息的方法,以便在继续路由前,将正确的回复存储在 inflight Camel Exchange 上。我们建议在构建自定义关联管理器时扩展 TimeoutCorrelationManagerSupport。这提供了对超时和其他复杂度的支持,否则您需要实施其他复杂性。如需了解更多详细信息,请参阅 producerPoolEnabled 选项。

 

NettyCamelState CorrelationManager

lazyChannelCreation (producer)

如果远程服务器在 Camel 生成者启动时没有启动并运行,可以完全创建频道以避免异常。

true

布尔值

producerPoolEnabled (producer)

生成者池是否启用。重要:如果您关闭此,则单个共享连接将用于生成者,您也可以执行 request/reply。这意味着,如果回复没有顺序,则交错响应可能存在潜在的问题。因此,您需要在请求和回复消息中有一个关联 id,以便您可以正确地将回复与负责继续处理 Camel 的消息的 Camel 回调相关联。为此,您需要实施 NettyCamelStateCorrelationManager 作为关联管理器,并通过 correlationManager 选项进行配置。如需了解更多详细信息,请参阅 correlationManager 选项。

true

布尔值

producerPoolMaxActive (producer)

对池可以分配的对象数量(签出给客户端,或闲置一个给定时间等待签出)的对象数量设置上限。对没有限制使用负值。

-1

int

producerPoolMaxIdle (producer)

对池中空闲实例数量设置上限。

100

int

producerPoolMinEvictable Idle (producer)

在空闲对象驱除者有资格驱除前,对象设置在池中闲置的最小时间(值为 millis)。

300000

long

producerPoolMinIdle (producer)

在驱除器线程(如果活跃)生成新对象之前,设置制作者池中允许的最小实例数量。

 

int

udpConnectionlessSending (producer)

这个选项支持连接 less udp 发送,而这是真正触发并忘记的。如果没有侦听接收端口,则连接的 udp 会发送 PortUnreachableException。

false

布尔值

useByteBuf (producer)

如果 useByteBuf 为 true,则 netty producer 会将消息正文转换为 ByteBuf,然后再发送它。

false

布尔值

allowSerializedHeaders (advanced)

仅在 transferExchange 为 true 时使用 TCP。当设置为 true 时,标头中的串行对象和属性将添加到交换中。否则 Camel 将排除任何非可序列化对象,并将其记录在 WARN 级别。

false

布尔值

bootstrapConfiguration (advanced)

使用配置了自定义 NettyServerBootstrapConfiguration 来配置此端点。

 

NettyServerBootstrap Configuration

channelGroup (advanced)

使用明确的 ChannelGroup。

 

ChannelGroup

nativeTransport (advanced)

是否使用原生传输而不是 NIO。原生传输利用主机操作系统,且仅在某些平台上被支持。您需要为您要使用的主机操作系统添加 netty JAR。详情请查看 :http://netty.io/wiki/native-transports.html

false

布尔值

选项 (advanced)

允许使用 option. 作为前缀配置额外的 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

同步 (advanced)

设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。

false

布尔值

transferExchange (advanced)

仅用于 TCP。您可以通过线路而不是只传输正文来传输交换。以下字段会被传输:在 body, Out body, fault body, In headers, Out headers, fault headers, exchange properties, exchange exception。这要求对象是可序列化的。Camel 将排除任何非可序列化对象,并将其记录在 WARN 级别。

false

布尔值

udpByteArrayCodec (advanced)

仅针对 UDP。如果使用字节数组 codec 而不是 Java 序列化协议启用。

false

布尔值

workerCount (advanced)

当 netty 适用于 nio 模式时,它将使用来自 Netty 的默认 workerCount 参数,即 cpu_core_threads x 2。用户可以使用此操作覆盖 Netty 的默认 workerCount。

 

int

workerGroup (advanced)

使用显式 EventLoopGroup 作为 boss 线程池。例如,要与多个消费者或生成者共享线程池。默认情况下,每个消费者或制作者都有自己的 worker 池,具有 2 个 x cpu 数核心线程。

 

EventLoopGroup

allowDefaultCodec (codec)

如果两者都是 null,则 netty 组件会安装默认的 codec,textline 为 false。将 allowDefaultCodec 设置为 false 可防止 netty 组件作为过滤器链中的第一个元素安装默认的 codec。

true

布尔值

autoAppendDelimiter (codec)

在使用 textline codec 发送时,是否自动附加缺少的结束分隔符。

true

布尔值

decoder (codec)

弃用了 可用于执行入站有效负载的特殊聚合的自定义 ChannelHandler 类。

 

ChannelHandler

decoderMaxLineLength (codec)

用于文本 codec 的最大行长度。

1024

int

decoders (codec)

要使用的解码器列表。您可以使用字符串,其值用逗号分开,并在 Registry 中查找值。只需记住,使用 # so Camel 知道它应该查找的值作为前缀。

 

字符串

delimiter (codec)

用于文本 codec 的分隔符。可能的值有 LINE 和 NULL。

TextLineDelimiter

encoder (codec)

弃用了 可用于执行出站有效负载的特殊聚合的自定义 ChannelHandler 类。

 

ChannelHandler

encoders (codec)

要使用的编码程序列表。您可以使用字符串,其值用逗号分开,并在 Registry 中查找值。只需记住,使用 # so Camel 知道它应该查找的值作为前缀。

 

字符串

编码 (codec)

用于文本 codec 的编码(charset 名称)。如果没有提供,Camel 将使用 JVM 默认 Charset。

 

字符串

textline (codec)

仅用于 TCP。如果没有指定 codec,您可以使用此标志来指示基于文本行的 codec;如果没有指定或值为 false,则通过 TCP 假设 Object Serialization。

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 (security)

设置以指定 SSL 加密是否应用到此端点

false

布尔值

sslClientCertHeaders (security)

启用和采用 SSL 模式时,Netty 使用者将增强 Camel 消息,其中包含有关客户端证书的信息,如主题名称、签发者名称、序列号和有效日期范围。

false

布尔值

sslContextParameters (security)

使用 SSLContextParameters 配置安全性

 

SSLContextParameters

sslHandler (security)

对可用于返回 SSL 处理程序的类的引用

 

SslHandler

trustStoreFile (security)

用于加密的服务器端证书密钥存储

 

File

trustStoreResource (security)

用于加密的服务器端证书密钥存储。默认情况下从 classpath 加载,但您可以使用 classpath:、file: 或 http: 前缀来加载来自不同系统的资源。

 

字符串

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.