46.4. 端点选项


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

netty:protocol://host:port

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

46.4.1. 路径参数(3 参数)

Name描述默认值类型

protocol (common)

必需 使用 tcp 或 udp 的协议。

Enum 值:

  • tcp
  • udp
 

字符串

host (common)

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

 

字符串

port (common)

必需 主机端口号。

 

int

46.4.2. 查询参数(71 参数)

Name描述默认值类型

disconnect (common)

是否在使用后是否断开(close)与 Netty Channel 的连接。可用于消费者和生产者。

false

布尔值

keepalive ( common)

设置以确保不活动而关闭套接字。

true

布尔值

reuseAddress (common)

设置以方便套接字多路。

true

布尔值

reuseChannel (common)

此选项允许生产者和消费者(客户端模式)在处理交换的生命周期内重复使用相同的 Netty Channel。如果您需要在 Camel 路由中多次调用服务器并希望使用相同的网络连接,这非常有用。使用此选项时,频道不会返回到连接池,直到交换完成为止;如果 disconnect 选项设为 true,则不会断开连接。重复使用的频道作为交换属性存储在交换属性上,其键为 NettyConstants,Y_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,则使用。尝试重新连接的时间间隔(以毫秒为单位)。

10000

int

Back log (consumer (advanced))

允许为 netty consumer (server)配置积压。请注意,回放是根据操作系统的最佳工作。将这个选项设置为 200、500 或 1000 等值,请告知 TCP 堆栈如果未配置此选项,则接受队列的时长,则 backlog 依赖于 OS 设置。

 

int

bossCount (consumer (advanced))

当 netty 在 nio 模式上工作时,它会使用来自 Netty 的默认 bossCount 参数,即 1。用户可以使用这个选项覆盖 Netty 中的默认 bossCount。

1

int

bossGroup (consumer (advanced))

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

 

EventLoopGroup

disconnectOnNoReply (consumer (advanced))

如果启用了同步,则此选项指定 NettyConsumer (如果它应该断开任何回复的回复),则此选项指定 NettyConsumer。

true

布尔值

exceptionHandler (consumer (advanced))

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

 

ExceptionHandler

exchangePattern (consumer (advanced))

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

Enum 值:

  • InOnly
  • InOut
  • InOptionalOut
 

ExchangePattern

nettyServerBootstrapFactory (consumer (advanced))

使用自定义 NettyServerBootstrapFactory。

 

NettyServerBootstrapFactory

networkInterface (consumer (advanced))

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

 

字符串

noReplyLogLevel (consumer (advanced))

如果启用了同步,则指定 NettyConsumer 在日志记录没有回复时要使用的日志级别。

Enum 值:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • OFF

WARN

LoggingLevel

serverClosedChannelExceptionCaughtLogLevel (consumer (advanced))

如果服务器(NettyConsumer)捕获了 java.nio.channels.ClosedChannelException,则它会使用此日志级别登录。这用于避免记录关闭的通道异常,因为客户端可能会立即断开连接,从而导致 Netty 服务器出现关闭异常。

Enum 值:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • OFF

DEBUG

LoggingLevel

serverExceptionCaughtLogLevel (consumer (advanced))

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

Enum 值:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • OFF

WARN

LoggingLevel

serverInitializerFactory (consumer (advanced))

使用自定义 ServerInitializerFactory。

 

ServerInitializerFactory

usingExecutorService (consumer (advanced))

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

true

布尔值

connectTimeout (producer)

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

10000

int

lazyStartProducer (producer)

生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 CamelContext 和路由在生成者启动期间启动,并导致路由启动失败。通过懒惰启动,启动失败可以在路由信息时通过 Camel 的路由错误处理程序进行处理。请注意,在处理第一个消息时,创建并启动生成者可能需要稍等时间,并延长处理的总处理时间。

false

布尔值

requestTimeout (producer)

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

 

long

clientInitializerFactory (producer (advanced))

使用自定义 ClientInitializerFactory。

 

ClientInitializerFactory

correlationManager (producer (advanced))

使用自定义关联管理器来管理在将 request/reply 与 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)。

300000

long

producerPoolMinIdle (producer (advanced))

在驱除器线程(如果处于活动状态)前设置制作者池中允许的最小实例数量(如果处于活动状态)。

 

int

udpConnectionlessSending (producer (advanced))

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

false

布尔值

useByteBuf (producer (advanced))

如果 useByteBuf 为 true,netty producer 会在发送前将消息正文转换为 ByteBuf。

false

布尔值

主机名验证( 安全)

在 SSLEngine 上启用/禁用主机名验证。

false

布尔值

allowSerializedHeaders (advanced)

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

false

布尔值

channelGroup (advanced)

使用显式 ChannelGroup。

 

ChannelGroup

nativeTransport (advanced)

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

false

布尔值

options (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

Sync (advanced)

设置是否应严格使用同步处理。

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)

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

true

布尔值

autoAppendDelimiter (codec)

在使用文本 codec 发送时,是否自动附加缺少的最终分隔符。

true

布尔值

decoderMaxLineLength (codec)

文本代码的最大行长度。

1024

int

解码器 (codec)

要使用的解码器列表。您可以使用用逗号分开的值的字符串,并在 Registry 中查找值。只需记住使用 192.168.1.0/24 为值添加前缀,因此 Camel 知道它应该查找。

 

list

Delimiter (codec)

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

Enum 值:

  • NULL

TextLineDelimiter

encoders (codec)

要使用的编码程序列表。您可以使用用逗号分开的值的字符串,并在 Registry 中查找值。只需记住使用 192.168.1.0/24 为值添加前缀,因此 Camel 知道它应该查找。

 

list

编码 (codec)

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

 

字符串

文本行 (codec)

仅用于 TCP。如果没有指定 codec,您可以使用此标志来指示基于文本的 codec;如果没有指定,则为 false,则通过 TCP 假设对象序列化,但默认只允许对字符串进行序列化。

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 Message,其标头包含有关客户端证书的信息,如主题名称、签发者名称、序列号和有效日期范围。

false

布尔值

sslContextParameters (security)

使用 SSLContext 参数配置安全性:

 

SSLContextParameters

sslHandler (security)

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

 

SslHandler

trustStoreFile (security)

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

 

File

trustStoreResource (security)

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

 

字符串

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.