240.2. 选项
Netty 组件支持 4 个选项,如下所列。
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
配置 (高级) | 在创建端点时,使用 NettyConfiguration 作为配置。 | NettyConfiguration | |
maximumPoolSize (advanced) | 排序线程池的核心池大小(如果使用)。默认值为 16。 | 16 | int |
useGlobalSslContext 参数 (security) | 启用使用全局 SSL 上下文参数。 | false | 布尔值 |
resolveProperty Placeholders (advanced) | 组件是否应在启动时解析属性占位符。只有 String 类型的属性可以使用属性占位符。 | true | 布尔值 |
Netty 端点使用 URI 语法进行配置:
netty:protocol:host:port
使用以下路径和查询参数:
240.2.1. 路径参数(3 参数):
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
protocol | 必需 使用的协议,可以是 tcp 或 udp。 | 字符串 | |
主机 | 必需 的主机名。对于消费者,主机名是 localhost 或 0.0.0.0,对于生成者,主机名是要连接的远程主机 | 字符串 | |
port | 需要 主机端口号 | int |
240.2.2. 查询参数(67 参数):
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
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 | 布尔值 |
broadcast (consumer) | 将 设置为选择通过 UDP 的多播 | false | 布尔值 |
clientMode (consumer) | 如果 clientMode 为 true,netty 使用者会将地址连接到 TCP 客户端。 | false | 布尔值 |
backlog (consumer) | 允许为 netty consumer (server)配置积压。请注意,积压只是取决于操作系统的最佳努力。将此选项设置为值(如 200、500 或 1000)告知 TCP 堆栈如果未配置此选项,则接受队列的时长,则积压取决于操作系统设置。 | int | |
bossCount (consumer) | 当 netty 适用于 nio 模式时,它使用 Netty 中的默认 bossCount 参数,即 1。用户可以使用此操作从 Netty 覆盖默认的 bossCount | 1 | int |
bossPool (consumer) | 使用显式 org.jboss.netty.channel.socket.nio.BossPool 作为 boss 线程池。例如,要与多个使用者共享线程池。默认情况下,每个消费者都有自己的带有 1 个核心线程的 boss 池。 | BossPool | |
channelGroup (consumer) | 使用显式 ChannelGroup。 | ChannelGroup | |
disconnectOnNoReply (consumer) | 如果启用了同步,则此选项将指定 NettyConsumer (如果它应该断开连接),没有回复回来。 | true | 布尔值 |
ExceptionHandler ( consumer) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
exchangePattern (consumer) | 在消费者创建交换时设置交换模式。 | ExchangePattern | |
maxChannelMemorySize (consumer) | 使用 orderedThreadPoolExecutor 时每个频道的最大排队事件总量。指定 0 来禁用。 | 10485760 | long |
maxTotalMemorySize (consumer) | 使用 orderedThreadPoolExecutor 时,此池的最大排队事件总量。指定 0 来禁用。 | 209715200 | long |
nettyServerBootstrapFactory (consumer) | 使用自定义 NettyServerBootstrapFactory | NettyServerBootstrap Factory | |
networkInterface (consumer) | 在使用 UDP 时,可以使用此选项按名称指定网络接口,如 eth0 以加入多播组。 | 字符串 | |
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 | |
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) | 等待套接字连接可用的时间。价值为 millis。 | 10000 | long |
requestTimeout (producer) | 在调用远程服务器时,允许 Netty producer 使用超时。默认情况下,没有使用超时。该值在 milli 秒内,如 30000 为 30 秒。requestTimeout 使用 Netty 的 ReadTimeoutHandler 来触发超时。 | long | |
clientPipelineFactory (producer) | 使用自定义 ClientPipelineFactory | ClientPipelineFactory | |
lazyChannelCreation (producer) | 如果远程服务器在 Camel producer 启动时未启动并运行,则可以创建频道以避免异常。 | true | 布尔值 |
producerPoolEnabled (producer) | producer 池是否已启用。重要: 不要关闭此操作,因为处理并发和可靠的请求/回复需要池。 | true | 布尔值 |
producerPoolMaxActive (producer) | 设置池可分配给客户端或闲置等待签出的对象数量上限。对没有限制,使用负值。 | -1 | int |
producerPoolMaxIdle (producer) | 设置池中空闲实例数量上限。 | 100 | int |
producerPoolMinEvictable Idle (producer) | 设置对象在空闲对象驱除有资格驱除前,对象可能会在池中闲置的最小时间(值为 millis))。 | 300000 | long |
producerPoolMinIdle (producer) | 设置制作者池中允许的最小实例数量,然后再驱除线程(如果活跃)生成新对象。 | int | |
udpConnectionlessSending (producer) | 这个选项支持连接较少的 udp 发送,这是实际触发和忘记的。如果没有端口侦听接收端口,则已连接的 udp 发送 PortUnreachableException。 | false | 布尔值 |
useChannelBuffer (producer) | 如果 useChannelBuffer 为 true,则netty 生成者会在发送前将消息正文转换为 ChannelBuffer。 | false | 布尔值 |
bootstrapConfiguration (advanced) | 使用自定义配置的 NettyServerBootstrapConfiguration 来配置此端点。 | NettyServerBootstrap Configuration | |
选项 (advanced) | 允许使用选项配置其他 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 |
同步 (高级) | 设置是否应严格使用同步处理,还是允许 Camel 使用异步处理(如果支持)。 | false | 布尔值 |
transferExchange (advanced) | 仅用于 TCP。您可以通过线线传输交换,而不是只传输正文。以下字段被传输: 在 body, Out body, fault body, In headers, Out headers, fault headers, Exchange properties, Exchange exception。这要求对象是序列化的。Camel 将排除任何非序列化对象,并将其记录在 WARN 级别。 | false | 布尔值 |
allowDefaultCodec (codec) | 如果两者都是 null,netty 组件会安装默认的 codec,则 encoder/decoder 为 null,文本为 false。将 allowDefaultCodec 设置为 false 可防止 netty 组件将默认 codec 安装为过滤器链中的第一个元素。 | true | 布尔值 |
autoAppendDelimiter (codec) | 使用文本 codec 发送时是否自动附加缺少的结束分隔符。 | true | 布尔值 |
decoder (codec) | 弃用了 一个自定义 ChannelHandler 类,可用于执行入站有效负载的特殊汇总。必须覆盖 org.jboss.netty.channel.ChannelUpStreamHandler。 | ChannelHandler | |
decoderMaxLineLength (codec) | 用于文本行 codec 的最大行长度。 | 1024 | int |
decoders (codec) | 要使用的解码器列表。您可以使用以逗号分开的值的 String,并在 Registry 中查找值。只需记住使用 # 前缀,以便 Camel 知道它应该查找。 | 字符串 | |
delimiter (codec) | 用于文本行代码的分隔符。可能的值有 LINE 和 NULL。 | 行 | TextLineDelimiter |
encoder (codec) | 弃用了 一个自定义 ChannelHandler 类,可用于执行出站有效负载的特殊汇总。必须覆盖 org.jboss.netty.channel.ChannelDownStreamHandler。 | ChannelHandler | |
编码器 (codec) | 要使用的编码器列表。您可以使用以逗号分开的值的 String,并在 Registry 中查找值。只需记住使用 # 前缀,以便 Camel 知道它应该查找。 | 字符串 | |
编码 (codec) | 用于文本编码的编码(charset 名称)。如果没有提供,Camel 将使用 JVM 默认 Charset。 | 字符串 | |
文本行 (codec) | 仅用于 TCP。如果没有指定 codec,您可以使用此标志来指示基于文本的 codec;如果没有指定,或者值为 false,则通过 TCP 假设 Object Serialization。 | false | 布尔值 |
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 | 布尔值 |
密码短语 (security) | 要使用 SSH 加密/解密有效负载的密码设置 | 字符串 | |
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: 前缀来加载来自不同系统的资源。 | 字符串 |