36.4. 端点选项


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

netty:protocol://host:port
Copy to Clipboard Toggle word wrap

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

36.4.1. 路径参数(3 参数)

Expand
名称描述默认类型

protocol (common)

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

Enum 值:

  • tcp
  • udp
 

字符串

host (common)

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

 

字符串

端口 (common)

需要 主机端口号。

 

int

36.4.2. 查询参数(71 参数)

Expand
名称描述默认类型

断开连接 (通用)

使用后是否断开(关闭)与 Netty 频道的连接。可用于使用者和制作者。

false

布尔值

keepalive ( common)

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

true

布尔值

reuseAddress (common)

设置 有助于套接字多路复用.

true

布尔值

reuseChannel (common)

此选项允许生产者和消费者(客户端模式)在处理 Exchange 的生命周期中重复使用相同的 Netty Channel。如果您需要在 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 (消费者)

设置 以选择通过 UDP 进行多播。

false

布尔值

clientMode (consumer)

如果 clientMode 为 true,netty 使用者会将地址作为 TCP 客户端连接。

false

布尔值

Reconnect (consumer)

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

true

布尔值

reconnectInterval (consumer)

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

10000

int

积压 (消费者)

允许为 netty 使用者(server)配置积压。请注意,积压只是根据操作系统的最佳努力。将此选项设置为值,如 200、500 或 1000,告诉 TCP 堆栈接受队列在没有配置此选项时的时长,则 backlog 依赖于 OS 设置。

 

int

bossCount (使用者(高级)

当 netty 在 nio 模式下工作时,它使用 Netty 中的默认 bossCount 参数,即 1。用户可以使用此选项覆盖 Netty 中的默认 bossCount。

1

int

bossGroup (使用者(高级)

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

 

EventLoopGroup

NoReply disconnectOnNoReply (使用者(高级)

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

true

布尔值

exceptionHandler (consumer (advanced))

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

 

ExceptionHandler

exchangePattern (consumer (advanced))

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

Enum 值:

  • InOnly
  • InOut
  • InOptionalOut
 

ExchangePattern

nettyServerBootstrapFactory (使用者(高级)

使用自定义 NettyServerBootstrapFactory。

 

NettyServerBootstrapFactory

NetworkInterface (使用者(高级)

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

 

字符串

noReplyLogLevel (consumer (advanced))

如果启用了 sync,则此选项指定了在记录没有回复发送时要使用的 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 (使用者(高级)

使用自定义 ServerInitializerFactory。

 

ServerInitializerFactory

usingExecutorService (consumer (advanced))

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

true

布尔值

connectTimeout (producer)

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

10000

int

lazyStartProducer (producer)

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

false

布尔值

requestTimeout (producer)

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

 

long

clientInitializerFactory (producer (advanced))

使用自定义 ClientInitializerFactory。

 

ClientInitializerFactory

correlationManager (producer (advanced))

要使用自定义关联管理器,在将 request/reply 与 netty producer 搭配使用时,管理请求和回复消息的方式。只有当您有办法将请求与回复一起映射时,才应使用此参数,例如,在请求和回复消息中存在关联 ids 时。如果您希望在 netty 的同一频道(也称为 连接)上的多路并发消息,则可以使用它。执行此操作时,您必须有一种方法来关联请求和回复消息,以便您可以在 inflight Camel Exchange 上存储正确的回复,然后再继续路由。我们建议在构建自定义关联管理器时扩展 TimeoutCorrelationManagerSupport。这支持超时和其他复杂性,否则您还需要实施。如需了解更多详细信息,请参阅 producerPoolEnabled 选项。

 

NettyCamelStateCorrelationManager

lazyChannelCreation (生成者(高级)

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

true

布尔值

producerPoolEnabled (producer (advanced))

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

true

布尔值

producerPoolMaxIdle (producer (advanced))

根据池中空闲实例的数量设置 cap。

100

int

producerPoolMaxTotal (生成者(高级)

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

-1

int

producerPoolMinEvictableIdle (producer (advanced))

设置对象可能处于空闲时间的最小值(以millis 中的值),然后才能被闲置对象驱除器进行驱除。

300000

long

producerPoolMinIdle (producer (advanced))

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

 

int

udpConnectionlessSending (生成(高级)

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

false

布尔值

useByteBuf (producer (advanced))

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

false

布尔值

hostnameVerification ( security)

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

false

布尔值

allowSerializedHeaders (高级)

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

false

布尔值

channelGroup (高级)

使用显式 ChannelGroup。

 

ChannelGroup

nativeTransport (高级)

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

false

布尔值

选项 (高级)

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

 

Map

receiveBufferSize (advanced)

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

65536

int

receiveBufferSizePredictor (advanced)

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

 

int

sendBufferSize (advanced)

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

65536

int

同步 (高级)

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

false

布尔值

transferExchange (advanced)

仅用于 TCP。您可以通过线路来传输交换,而不只是正文。以下字段已传输:在正文、出口正文、错误正文、In headers、out 标头、错误标头、交换属性、交换属性中。这要求对象是串行的。Camel 将排除任何非序列化对象,并在 WARN 级别记录它。

false

布尔值

udpByteArrayCodec (advanced)

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

false

布尔值

workerCount (高级)

当 netty 在 nio 模式下工作时,它使用 Netty (cpu_core_threads x 2)的默认 workerCount 参数。用户可以使用此选项覆盖 Netty 中的默认 workerCount。

 

int

WorkerGroup (高级)

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

 

EventLoopGroup

allowDefaultCodec (codec)

netty 组件同时会安装一个默认的 codec,编码器/解码器为 null,textline 为 false。将 allowDefaultCodec 设置为 false 可防止 netty 组件将默认 codec 安装为过滤器链中的第一个元素。

true

布尔值

autoAppendDelimiter (codec)

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

true

布尔值

decoderMaxLineLength (codec)

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

1024

int

decoders (codec)

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

 

list

分隔符 (codec)

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

Enum 值:

  • NULL

TextLineDelimiter

编码器 (codec)

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

 

list

编码 (codec)

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

 

字符串

文本行 (codec)

仅用于 TCP。如果没有指定 codec,您可以使用此标志来指示基于文本的标志。如果没有指定,或者值为 false,则通过 TCP 假定 Object Serialization,但默认只允许 String 序列化。

false

布尔值

enabledProtocols (security)

使用 SSL 时要启用哪些协议。

TLSv1,TLSv1.1,TLSv1.2

字符串

keyStoreFile (安全)

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

 

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 (安全)

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

 

SslHandler

trustStoreFile (security)

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

 

File

trustStoreResource (security)

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

 

字符串

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat