240.2. 选项


Netty 组件支持 4 个选项,如下所列。

Name描述默认值类型

配置 (高级)

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

 

NettyConfiguration

maximumPoolSize (advanced)

排序线程池的核心池大小(如果使用)。默认值为 16。

16

int

useGlobalSslContext 参数 (security)

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

false

布尔值

resolveProperty Placeholders (advanced)

组件是否应在启动时解析属性占位符。只有 String 类型的属性可以使用属性占位符。

true

布尔值

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

netty:protocol:host:port

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

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

Name描述默认值类型

protocol

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

 

字符串

主机

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

 

字符串

port

需要 主机端口号

 

int

240.2.2. 查询参数(67 参数):

Name描述默认值类型

disconnect (common)

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

false

布尔值

keepalive ( common)

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

true

布尔值

reuseAddress (common)

设置以方便套接字多路

true

布尔值

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 使用者会将地址连接到 TCP 客户端。

false

布尔值

backlog (consumer)

允许为 netty consumer (server)配置积压。请注意,积压只是取决于操作系统的最佳努力。将此选项设置为值(如 200、500 或 1000)告知 TCP 堆栈如果未配置此选项,则接受队列的时长,则积压取决于操作系统设置。

 

int

bossCount (consumer)

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

1

int

bossPool (consumer)

使用显式 org.jboss.netty.channel.socket.nio.BossPool 作为 boss 线程池。例如,要与多个使用者共享线程池。默认情况下,每个消费者都有自己的带有 1 个核心线程的 boss 池。

 

BossPool

channelGroup (consumer)

使用显式 ChannelGroup。

 

ChannelGroup

disconnectOnNoReply (consumer)

如果启用了同步,则此选项将指定 NettyConsumer (如果它应该断开连接),没有回复回来。

true

布尔值

ExceptionHandler ( consumer)

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

 

ExceptionHandler

exchangePattern (consumer)

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

 

ExchangePattern

maxChannelMemorySize (consumer)

使用 orderedThreadPoolExecutor 时每个频道的最大排队事件总量。指定 0 来禁用。

10485760

long

maxTotalMemorySize (consumer)

使用 orderedThreadPoolExecutor 时,此池的最大排队事件总量。指定 0 来禁用。

209715200

long

nettyServerBootstrapFactory (consumer)

使用自定义 NettyServerBootstrapFactory

 

NettyServerBootstrap Factory

networkInterface (consumer)

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

 

字符串

noReplyLogLevel (consumer)

如果启用了同步,这个选项会指示 NettyConsumer,在记录一个没有回复时要使用的日志记录级别。

WARN

LoggingLevel

orderedThreadPoolExecutor (consumer)

是否使用排序的线程池,确保同一通道上按顺序处理事件。如需了解更多详细信息,请参阅 org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor 的 netty javadoc。

true

布尔值

serverClosedChannel ExceptionCaughtLogLevel (consumer)

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

DEBUG

LoggingLevel

serverExceptionCaughtLog Level (consumer)

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

WARN

LoggingLevel

serverPipelineFactory (consumer)

使用自定义 ServerPipelineFactory

 

ServerPipelineFactory

workerCount (consumer)

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

 

int

workerPool (consumer)

使用显式 org.jboss.netty.channel.socket.nio.WorkerPool 作为 worker 线程池。例如,要与多个使用者共享线程池。默认情况下,每个使用者都有自己的 worker 池,有 2 个 x cpu 数内核线程。

 

WorkerPool

connectTimeout (producer)

等待套接字连接可用的时间。价值为 millis。

10000

long

requestTimeout (producer)

在调用远程服务器时,允许 Netty producer 使用超时。默认情况下,没有使用超时。该值在 milli 秒内,如 30000 为 30 秒。requestTimeout 使用 Netty 的 ReadTimeoutHandler 来触发超时。

 

long

clientPipelineFactory (producer)

使用自定义 ClientPipelineFactory

 

ClientPipelineFactory

lazyChannelCreation (producer)

如果远程服务器在 Camel producer 启动时未启动并运行,则可以创建频道以避免异常。

true

布尔值

producerPoolEnabled (producer)

producer 池是否已启用。重要: 不要关闭此操作,因为处理并发和可靠的请求/回复需要池。

true

布尔值

producerPoolMaxActive (producer)

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

-1

int

producerPoolMaxIdle (producer)

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

100

int

producerPoolMinEvictable Idle (producer)

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

300000

long

producerPoolMinIdle (producer)

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

 

int

udpConnectionlessSending (producer)

这个选项支持连接较少的 udp 发送,这是实际触发和忘记的。如果没有端口侦听接收端口,则已连接的 udp 发送 PortUnreachableException。

false

布尔值

useChannelBuffer (producer)

如果 useChannelBuffer 为 true,则netty 生成者会在发送前将消息正文转换为 ChannelBuffer。

false

布尔值

bootstrapConfiguration (advanced)

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

 

NettyServerBootstrap Configuration

选项 (advanced)

允许使用选项配置其他 netty 选项作为前缀。例如: option.child.keepAlive=false 设置 netty 选项 child.keepAlive=false。有关可以使用的选项,请参阅 Netty 文档。

 

Map

receiveBufferSize (advanced)

在入站通信中使用的 TCP/UDP 缓冲区大小。大小为字节。

65536

long

receiveBufferSizePredictor (advanced)

配置缓冲区大小预测。请参阅 Jetty 文档和此邮件线程的详细信息。

 

int

sendBufferSize (advanced)

在出站通信中使用的 TCP/UDP 缓冲大小。大小为字节。

65536

long

同步 (高级)

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

false

布尔值

transferExchange (advanced)

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

false

布尔值

allowDefaultCodec (codec)

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

true

布尔值

autoAppendDelimiter (codec)

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

true

布尔值

decoder (codec)

弃用了 一个自定义 ChannelHandler 类,可用于执行入站有效负载的特殊汇总。必须覆盖 org.jboss.netty.channel.ChannelUpStreamHandler。

 

ChannelHandler

decoderMaxLineLength (codec)

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

1024

int

decoders (codec)

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

 

字符串

delimiter (codec)

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

TextLineDelimiter

encoder (codec)

弃用了 一个自定义 ChannelHandler 类,可用于执行出站有效负载的特殊汇总。必须覆盖 org.jboss.netty.channel.ChannelDownStreamHandler。

 

ChannelHandler

编码器 (codec)

要使用的编码器列表。您可以使用以逗号分开的值的 String,并在 Registry 中查找值。只需记住使用 # 前缀,以便 Camel 知道它应该查找。

 

字符串

编码 (codec)

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

 

字符串

文本行 (codec)

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

false

布尔值

enabledProtocols (security)

使用 SSL 时要启用的协议

TLSv1,TLSv1.1,TLSv1.2

字符串

keyStoreFile (security)

用于加密的客户端侧证书密钥存储

 

File

keyStoreFormat (security)

用于有效负载加密的密钥存储格式。如果没有设置,则默认为 JKS

JKS

字符串

keyStoreResource (security)

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

 

字符串

needClientAuth (security)

配置服务器在使用 SSL 时是否需要客户端身份验证。

false

布尔值

密码短语 (security)

要使用 SSH 加密/解密有效负载的密码设置

 

字符串

securityProvider (security)

用于有效负载加密的安全供应商。如果没有设置,则默认为 SunX509。

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.