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。

枚举值:

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

WARN

LoggingLevel

serverClosedChannelExceptionCaughtLogLevel (consumer (advanced))

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

枚举值:

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

DEBUG

LoggingLevel

serverExceptionCaughtLogLevel (consumer (advanced))

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

枚举值:

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

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。

枚举值:

  • 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

布尔值

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.