241.2. HTTP 选项


更多选项

此组件从 Netty 继承所有选项。因此,请确保还要查看 Netty 文档。
请注意,在使用此 Netty HTTP 组件时,Netty 中的一些选项不适用,如与 UDP 传输相关的选项。

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

名称描述默认值类型

nettyHttpBinding (advanced)

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

 

NettyHttpBinding

configuration (common)

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

 

NettyHttpConfiguration

headerFilterStrategy (advanced)

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

 

HeaderFilterStrategy

securityConfiguration (security)

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

 

NettyHttpSecurity 配置

useGlobalSslContext Parameters (security)

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

false

布尔值

maximumPoolSize (advanced)

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

16

int

resolveProperty Placeholders (advanced)

启动时组件是否应解析自身上的属性占位符。只有属于 String 类型的属性才能使用属性占位符。

true

布尔值

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

netty-http:protocol:host:port/path

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

241.2.1. 路径参数(4 参数):

名称描述默认值类型

protocol

必需。要使用的协议可以是 http 或 https

 

字符串

主机

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

 

字符串

端口

主机端口号

 

int

path

资源路径

 

字符串

241.2.2. 查询参数(78 参数):

名称描述默认值类型

bridgeEndpoint (common)

如果选项为 true,则制作者将忽略 Exchange.HTTP_URI 标头,并使用端点的 URI 请求。您还可以将 throwExceptionOnFailure 设置为 false,以便生成者将所有故障响应发回。网桥模式中的消费者将跳过 gzip 压缩和 WWW URL 表单编码(通过将 Exchange.SKIP_GZIP_ENCODING 和 Exchange.SKIP_WW_FORM_URLENCODED 标头添加到被消耗的交换中)。

false

布尔值

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

布尔值

matchOnUriPrefix (consumer)

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

false

布尔值

send503whenSuspended (consumer)

消费者暂停时,是否发送 HTTP 状态代码 503。如果选项为 false,则 Netty Acceptor 在消费者暂停时为 unbound,因此客户端无法再连接。

true

布尔值

backlog (consumer)

允许为 netty consumer (server)配置积压。请注意,后端只是根据操作系统的最佳努力。将此选项设置为值(如 200、500 或 1000 )告知 TCP 堆栈如果未配置此选项,则 backlog 依赖于 OS 设置。

 

int

bossCount (consumer)

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

1

int

bossPool (consumer)

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

 

BossPool

channelGroup (consumer)

使用明确的 ChannelGroup。

 

ChannelGroup

chunkedMaxContentLength (consumer)

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

1048576

int

compression (consumer)

如果客户端支持来自 HTTP 标头的 gzip/deflate,则允许使用 gzip/deflate 在 Netty HTTP 服务器上压缩。

false

布尔值

disableStreamCache (consumer)

确定来自 Netty HttpRequest#getContent ()的原始输入流是否被缓存(Camel 将读取流到基于轻量级内存的流缓存中)。默认情况下,Camel 将缓存 Netty 输入流来支持多次读取它,以确保 Camel 可以从流检索所有数据。但是,当您需要访问原始流时,您可以将这个选项设置为 true,比如将其直接流传输到文件或其他持久性存储。请记住,如果您启用这个选项,则无法多次读取 Netty 流,您需要在 Netty 原始流上手动重置 reader 索引。

false

布尔值

disconnectOnNoReply (consumer)

如果启用了同步,这个选项会指定 NettyConsumer (如果应该断开连接,但没有回复来回发)。

true

布尔值

exceptionHandler (consumer)

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

 

ExceptionHandler

exchangePattern (consumer)

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

 

ExchangePattern

httpMethodRestrict (consumer)

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

 

字符串

mapHeaders (consumer)

如果启用了这个选项,则在从 Netty 到 Camel Message 绑定时,也会映射标头(如将标头添加到 Camel 消息)。您可以关闭这个选项来禁用这个选项。仍可从 org.apache.camel.component.netty.http.NettyHttpMessage 消息通过方法 getHttpRequest ()访问标头,该消息返回 Netty HTTP 请求 org.jboss.netty.handler.codec.http.HttpRequest 实例。

true

布尔值

maxChannelMemorySize (consumer)

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

10485760

long

maxHeaderSize (consumer)

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

8192

int

maxTotalMemorySize (consumer)

使用 orderedThreadPoolExecutor 时,为这个池排队事件的最大值。指定 0 来禁用。

209715200

long

nettyServerBootstrapFactory (consumer)

使用自定义 NettyServerBootstrapFactory

 

NettyServerBootstrap Factory

nettySharedHttpServer (consumer)

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

 

NettySharedHttpServer

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

traceEnabled (consumer)

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

false

布尔值

urlDecodeHeaders (consumer)

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

false

布尔值

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)

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

10000

long

requestTimeout (producer)

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

 

long

throwExceptionOnFailure (producer)

如果远程服务器失败响应,禁用禁用 HttpOperationFailedException 的选项。这样,无论 HTTP 状态代码是什么,您都可以获得所有响应。

true

布尔值

clientPipelineFactory (producer)

使用自定义 ClientPipelineFactory

 

ClientPipelineFactory

lazyChannelCreation (producer)

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

true

布尔值

okStatusCodeRange (producer)

被视为成功响应的状态代码。这些值包含为。可以定义多个范围,用逗号分开,如 200-204,209,301-304。每个范围都必须是一个数字或 from-to,包括横线。默认范围为 200-299

200-299

字符串

producerPoolEnabled (producer)

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

true

布尔值

producerPoolMaxActive (producer)

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

-1

int

producerPoolMaxIdle (producer)

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

100

int

producerPoolMinEvictable Idle (producer)

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

300000

long

producerPoolMinIdle (producer)

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

 

int

useChannelBuffer (producer)

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

false

布尔值

useRelativePath (producer)

设置是否在 HTTP 请求中使用相对路径。IBM Datapower 等第三方后端系统不支持 HTTP POST 中的绝对 URI,并将此选项设置为 true 可解决这个问题。

false

布尔值

bootstrapConfiguration (advanced)

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

 

NettyServerBootstrap Configuration

configuration (advanced)

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

 

NettyHttpConfiguration

headerFilterStrategy (advanced)

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

 

HeaderFilterStrategy

nettyHttpBinding (advanced)

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

 

NettyHttpBinding

选项 (advanced)

允许使用 option. 作为前缀配置额外的 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

同步 (advanced)

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

false

布尔值

transferException (advanced)

如果在消费者端启用并且 Exchange 失败,如果导致的 Exception 被发送序列化为 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

布尔值

decoder (codec)

弃用 以使用单个解码器。这个选项已弃用,改为使用 encoders。

 

ChannelHandler

decoders (codec)

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

 

字符串

encoder (codec)

弃用 以使用单个编码器。这个选项已弃用,改为使用 encoders。

 

ChannelHandler

encoders (codec)

要使用的编码程序列表。您可以使用字符串,其值用逗号分开,并在 Registry 中查找值。只需记住,使用 # so Camel 知道它应该查找的值作为前缀。

 

字符串

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

布尔值

密码短语 (安全)

使用密码设置来加密/解密使用 SSH 发送的有效负载

 

字符串

securityConfiguration (security)

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

 

NettyHttpSecurity 配置

securityOptions (security)

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

 

Map

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.