105.5. 端点选项


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

netty-http:protocol://host:port/path
Copy to Clipboard

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

105.5.1. 路径参数(4 参数)

Name描述默认值类型

protocol (common)

必需 使用的协议是 http、https 或 proxy - 仅限消费者的选项。

Enum 值:

  • http
  • https
 

字符串

host (common)

当作为消费者时,需要 本地主机名,如 localhost 或 0.0.0.0。使用制作者时的远程 HTTP 服务器主机名。

 

字符串

port (common)

主机端口号。

 

int

path (common)

资源路径。

 

字符串

105.5.2. 查询参数(85 参数)

Name描述默认值类型

bridgeEndpoint (common)

如果选项为 true,则生成者将忽略 NettyHttpConstants.HTTP_URI 标头,并使用端点的 URI 进行请求。您也可以将 throwExceptionOnFailure 设置为 false,以便生成者发送所有错误响应。在网桥模式下工作的用户将跳过 gzip 压缩和 WWW URL 表单编码(通过添加 Exchange.SKIP_ENCODING 和 Exchange.SKIP_WWW_FORM_URLENCODED 标头到已消耗的交换)。

false

布尔值

disconnect (common)

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

false

布尔值

keepalive ( common)

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

true

布尔值

reuseAddress (common)

设置 以方便套接字多路。

true

布尔值

reuseChannel (common)

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

false

布尔值

sync (common)

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

true

布尔值

tcpNoDelay (common)

设置 以提高 TCP 协议性能。

true

布尔值

matchOnUriPrefix (consumer)

如果没有找到完全匹配,Camel 是否应该尝试通过匹配 URI 前缀来查找目标消费者。

false

布尔值

muteException (consumer)

如果启用并且在消费者端进行交换失败处理,响应的正文不包含异常的堆栈追踪。

false

布尔值

send503whenSuspended (consumer)

在使用者被暂停时,是否发送回 HTTP 状态代码 503。如果选项为 false,则 Netty Acceptor 在消费者被暂停时处于未绑定状态,因此客户端无法再连接。

true

布尔值

backlog (consumer (advanced))

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

 

int

bossCount (consumer (advanced))

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

1

int

bossGroup (consumer (advanced))

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

 

EventLoopGroup

bridgeErrorHandler (consumer (advanced))

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

false

布尔值

chunkedMaxContentLength (consumer (advanced))

值(以字节为单位)在 Netty HTTP 服务器上接收的每个块帧的最大内容长度(以字节为单位)。

1048576

int

compression (consumer (advanced))

如果客户端从 HTTP 标头支持,则允许使用 gzip/定义在 Netty HTTP 服务器上压缩。

false

布尔值

disconnectOnNoReply (consumer (advanced))

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

true

布尔值

exceptionHandler (consumer (advanced))

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

 

ExceptionHandler

exchangePattern (consumer (advanced))

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

Enum 值:

  • InOnly
  • InOut
 

ExchangePattern

httpMethodRestrict (consumer (advanced))

要禁用 Netty HTTP 使用者上的 HTTP 方法。您可以指定用逗号分开的多个。

 

字符串

logWarnOnBadRequest (consumer (advanced))

如果解码 HTTP 请求失败,并且返回 HTTP 状态 400 (恶意请求),则 Netty HTTP 服务器是否应该记录 WARN。

true

布尔值

mapHeaders (consumer (advanced))

如果启用了这个选项,那么在从 Netty 绑定到 Camel Message 的过程中,标头也会被映射(如作为标头添加到 Camel 消息)。您可以关闭这个选项来禁用这个选项。标头仍然可以从 org.apache.camel.component.netty.http.NettyHttpMessage 消息访问,该消息返回 Netty HTTP 请求 io.netty.handler.codec.http.HttpRequest 实例。

true

布尔值

maxChunkSize (consumer (advanced))

内容或每个块的最大长度。如果内容长度(或每个块的长度)超过这个值,则内容或块将分成多个 io.netty.handler.codec.http.HttpContents,其长度为 maxChunkSize。See io.netty.handler.codec.http.HttpObjectDecoder.

8192

int

maxHeaderSize (consumer (advanced))

所有标头的最大长度。如果每个标头的长度总和超过这个值,则会引发 io.netty.handler.codec.TooLongFrameException。

8192

int

maxInitialLineLength (consumer (advanced))

初始行的长度(如 \\{code GET / HTTP/1.0} 或 \\{code HTTP/1.0 200 OK})如果初始行的长度超过这个值,则引发 TooLongFrameException。See io.netty.handler.codec.http.HttpObjectDecoder.

4096

int

nettyServerBootstrapFactory (consumer (advanced))

使用自定义 NettyServerBootstrapFactory。

 

NettyServerBootstrapFactory

nettySharedHttpServer (consumer (advanced))

使用共享的 Netty HTTP 服务器。如需了解更多详细信息,请参阅 Netty HTTP 服务器示例。

 

NettySharedHttpServer

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

traceEnabled (consumer (advanced))

指定是否为这个 Netty HTTP 使用者启用 HTTP TRACE。默认情况下关闭 TRACE。

false

布尔值

urlDecodeHeaders (consumer (advanced))

如果启用了这个选项,那么在从 Netty 绑定到 Camel Message 的过程中,标头值将被解码(例如 %20 将是一个空格字符)。注意此选项由默认的 org.apache.camel.component.netty.http.NettyHttpBinding 使用,因此如果您实施自定义 org.apache.camel.component.netty.http.NettyHttpBinding,则需要相应地将标头解码到此选项。

false

布尔值

useExecutorService (consumer (advanced))

是否使用排序的线程池,确保同一通道上按顺序处理事件。

true

布尔值

connectTimeout (producer)

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

10000

int

cookieHandler (producer)

配置 Cookie 处理程序,以维护 HTTP 会话。

 

CookieHandler

requestTimeout (producer)

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

 

long

throwExceptionOnFailure (producer)

如果来自远程服务器的失败响应,用于禁用抛出 HttpOperationFailedException。这样,您可以获取所有响应,而不考虑 HTTP 状态代码。

true

布尔值

clientInitializerFactory (producer (advanced))

使用自定义 ClientInitializerFactory。

 

ClientInitializerFactory

lazyChannelCreation (producer (advanced))

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

true

布尔值

lazyStartProducer (producer (advanced))

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

false

布尔值

okStatusCodeRange (producer (advanced))

被视为成功响应的状态代码。值包含。可以定义多个范围,用逗号分开,例如 200-204,209,301-304。每个范围必须是单个数字,或从 到,其中包含短划线。默认范围为 200-299。

200-299

字符串

producerPoolBlockWhenExhausted (producer (advanced))

设置 blockWhenExhausted 配置属性的值。它决定在池耗尽时是否调用 borrowObject ()方法(达到的最大活跃对象数)。

true

布尔值

producerPoolEnabled (producer (advanced))

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

true

布尔值

producerPoolMaxIdle (producer (advanced))

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

100

int

producerPoolMaxTotal (producer (advanced))

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

-1

int

producerPoolMaxWait (producer (advanced))

在池耗尽并且 producerPoolBlockWhenExhausted 为 true 时,borrowObject ()方法应在抛出异常前设置最长持续时间(值 millis )。当少于 0 时,borrowObject ()方法可能会无限期阻断。

-1

long

producerPoolMinEvictableIdle (producer (advanced))

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

300000

long

producerPoolMinIdle (producer (advanced))

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

 

int

useRelativePath (producer (advanced))

设置是否在 HTTP 请求中使用相对路径。

true

布尔值

hostnameVerification ( security)

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

false

布尔值

allowSerializedHeaders (advanced)

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

false

布尔值

channelGroup (advanced)

使用显式 ChannelGroup。

 

ChannelGroup

配置 (高级)

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

 

NettyHttpConfiguration

disableStreamCache (advanced)

确定来自 Netty HttpRequest CPUfreqgetContent ()或 HttpResponset"getContent ()的原始输入流是否被缓存(Camel 会将流读取到基于轻量级内存的流缓存)缓存中。默认情况下,Camel 将缓存 Netty 输入流,以支持多次读取,以确保其 Camel 可以从流检索所有数据。但是,当您需要访问原始流时,您可以将此选项设置为 true,例如将其直接流传输到文件或其他持久性存储。请注意,如果您启用这个选项,则无法多次读取 Netty 流,您需要手动重置 Netty 原始流上的读取器索引。另外,Netty 会在 Netty HTTP 服务器/HTTP 客户端被处理时自动关闭 Netty 流,这意味着如果异步路由引擎正在使用,则任何可继续路由 org.apache.camel.Exchange 可能无法读取 Netty 流,因为 Netty 已关闭它。

false

布尔值

headerFilterStrategy (advanced)

使用自定义 org.apache.camel.spi.HeaderFilterStrategy 来过滤标头。

 

HeaderFilterStrategy

nativeTransport (advanced)

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

false

布尔值

nettyHttpBinding (advanced)

使用自定义 org.apache.camel.component.netty.http.NettyHttpBinding 来绑定到 Netty 和 Camel Message API。

 

NettyHttpBinding

选项 (advanced)

允许使用选项配置其他 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

同步 (高级)

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

false

布尔值

transferException (advanced)

如果在消费者端启用并交换失败处理,如果原因 Exception 在响应中作为 application/x-java-serialized-object 内容类型发送序列化,则结果为 application/x-java-serialized-object 内容类型。在生产者侧,异常将反序列化并丢弃为原样,而不是 HttpOperationFailedException。原因异常需要按顺序处理。默认为关闭。如果您启用它,则 Java 会将传入的数据反序列化 Java 请求,这可能会成为潜在的安全风险。

false

布尔值

transferExchange (advanced)

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

false

布尔值

unixDomainSocketPath (advanced)

使用 unix 域套接字的路径,而不是 inet 套接字。但是,不需要使用主机和端口参数。为它们设置 dummy 值是正确的。必须与 nativeTransport=true 和 clientMode=false 一起使用。

 

字符串

workerCount (advanced)

当 netty 适用于 nio 模式时,它会使用来自 Netty 的默认 workerCount 参数(即 cpu_core_threads x 2)。用户可以使用此选项从 Netty 覆盖默认的 workerCount。

 

int

workerGroup (advanced)

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

 

EventLoopGroup

decoders (codec)

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

 

字符串

编码器 (codec)

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

 

字符串

enabledProtocols (security)

使用 SSL 时要启用的协议。

TLSv1.2,TLSv1.3

字符串

keyStoreFile (security)

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

 

File

keyStoreFormat (security)

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

 

字符串

keyStoreResource (security)

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

 

字符串

needClientAuth (security)

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

false

布尔值

密码短语 (security)

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

 

字符串

securityConfiguration (security)

指的是 org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration,用于配置安全 Web 资源。

 

NettyHttpSecurityConfiguration

securityOptions (security)

使用映射中的键/值对配置 NettyHttpSecurityConfiguration。

 

Map

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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

Theme

© 2025 Red Hat