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: 前缀来加载来自不同系统的资源。 | 字符串 |