105.5. 端点选项
Netty HTTP 端点使用 URI 语法进行配置:
netty-http:protocol://host:port/path
netty-http:protocol://host:port/path
使用以下路径和查询参数:
105.5.1. 路径参数(4 参数)
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
protocol (common) | 必需 使用的协议是 http、https 或 proxy - 仅限消费者的选项。 Enum 值:
| 字符串 | |
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 值:
| 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 值:
| WARN | LoggingLevel |
serverClosedChannelExceptionCaughtLogLevel (consumer (advanced)) | 如果服务器(NettyConsumer)捕获 java.nio.channels.ClosedChannelException,然后使用此日志级别进行记录。这用于避免记录关闭的频道异常,因为客户端可以立即断开,然后在 Netty 服务器中造成大量关闭的异常。 Enum 值:
| DEBUG | LoggingLevel |
serverExceptionCaughtLogLevel (consumer (advanced)) | 如果服务器(NettyConsumer)捕获异常,则使用此日志级别进行日志记录。 Enum 值:
| 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: 前缀来加载来自不同系统的资源。 | 字符串 |