36.4. 端点选项
Netty 端点使用 URI 语法进行配置:
netty:protocol://host:port
netty:protocol://host:port
使用以下路径和查询参数:
36.4.1. 路径参数(3 参数) 复制链接链接已复制到粘贴板!
名称 | 描述 | 默认 | 类型 |
---|---|---|---|
protocol (common) | 需要 使用的协议可以是 tcp 或 udp。 Enum 值:
| 字符串 | |
host (common) | 必需 主机名。对于消费者,主机名是 localhost 或 0.0.0.0。对于制作者,主机名是要连接的远程主机。 | 字符串 | |
端口 (common) | 需要 主机端口号。 | int |
36.4.2. 查询参数(71 参数) 复制链接链接已复制到粘贴板!
名称 | 描述 | 默认 | 类型 |
---|---|---|---|
断开连接 (通用) | 使用后是否断开(关闭)与 Netty 频道的连接。可用于使用者和制作者。 | false | 布尔值 |
keepalive ( common) | 设置 以确保套接字因为不活跃而不会被关闭。 | true | 布尔值 |
reuseAddress (common) | 设置 有助于套接字多路复用. | true | 布尔值 |
reuseChannel (common) | 此选项允许生产者和消费者(客户端模式)在处理 Exchange 的生命周期中重复使用相同的 Netty Channel。如果您需要在 Camel 路由中多次调用服务器,并希望使用相同的网络连接,这将非常有用。使用这个选项时,频道不会返回到连接池,直到 Exchange 完成为止,如果 disconnect 选项设为 true,则频道不会返回到连接池。重复使用的频道保存在 Exchange 上,使用密钥 NettyConstants#NETTY_CHANNEL (允许您在路由期间获取频道并使用它)。 | false | 布尔值 |
sync (common) | 设置为将端点设置为单向或请求响应。 | true | 布尔值 |
tcpNoDelay (common) | 设置 以提高 TCP 协议性能。 | true | 布尔值 |
bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
Broadcast (消费者) | 设置 以选择通过 UDP 进行多播。 | false | 布尔值 |
clientMode (consumer) | 如果 clientMode 为 true,netty 使用者会将地址作为 TCP 客户端连接。 | false | 布尔值 |
Reconnect (consumer) | 仅在消费者中的 clientMode 中使用,如果启用此功能,消费者将尝试重新连接。 | true | 布尔值 |
reconnectInterval (consumer) | 如果启用了 reconnect 和 clientMode,则使用。尝试重新连接的时间间隔(以秒为单位)。 | 10000 | int |
积压 (消费者) | 允许为 netty 使用者(server)配置积压。请注意,积压只是根据操作系统的最佳努力。将此选项设置为值,如 200、500 或 1000,告诉 TCP 堆栈接受队列在没有配置此选项时的时长,则 backlog 依赖于 OS 设置。 | int | |
bossCount (使用者(高级) | 当 netty 在 nio 模式下工作时,它使用 Netty 中的默认 bossCount 参数,即 1。用户可以使用此选项覆盖 Netty 中的默认 bossCount。 | 1 | int |
bossGroup (使用者(高级) | 设置 BossGroup,可用于处理 NettyEndpoint 之间的服务器端的新连接。 | EventLoopGroup | |
NoReply disconnectOnNoReply (使用者(高级) | 如果启用了同步,则此选项将指定 NettyConsumer (如果应该断开没有回复发送)。 | true | 布尔值 |
exceptionHandler (consumer (advanced)) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
exchangePattern (consumer (advanced)) | 在消费者创建交换时设置交换模式。 Enum 值:
| ExchangePattern | |
nettyServerBootstrapFactory (使用者(高级) | 使用自定义 NettyServerBootstrapFactory。 | NettyServerBootstrapFactory | |
NetworkInterface (使用者(高级) | 使用 UDP 时,此选项可用于按照其名称指定网络接口,如 eth0 以加入多播组。 | 字符串 | |
noReplyLogLevel (consumer (advanced)) | 如果启用了 sync,则此选项指定了在记录没有回复发送时要使用的 NettyConsumer 的日志记录级别。 Enum 值:
| WARN | LoggingLevel |
serverClosedChannelExceptionCaughtLogLevel (consumer (advanced)) | 如果服务器(NettyConsumer)捕获 java.nio.channels.ClosedChannelException,则使用此日志记录级别记录。这用于避免记录关闭的频道异常,因为客户端可能会断开停滞,然后在 Netty 服务器中造成大量关闭异常。 Enum 值:
| DEBUG | LoggingLevel |
serverExceptionCaughtLogLevel (consumer (advanced)) | 如果服务器(NettyConsumer)捕获了一个异常,则使用这个日志记录级别记录。 Enum 值:
| WARN | LoggingLevel |
serverInitializerFactory (使用者(高级) | 使用自定义 ServerInitializerFactory。 | ServerInitializerFactory | |
usingExecutorService (consumer (advanced)) | 是否使用 ordered 线程池,以确保事件在同一频道中按顺序处理。 | true | 布尔值 |
connectTimeout (producer) | 等待套接字连接可用的时间。值以毫秒为单位。 | 10000 | int |
lazyStartProducer (producer) | 生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 CamelContext 和路由在生成者启动期间启动,并导致路由启动失败。通过懒惰启动,启动失败可以在路由信息时通过 Camel 的路由错误处理程序进行处理。请注意,在处理第一个消息时,创建并启动生成者可能需要稍等时间,并延长处理的总处理时间。 | false | 布尔值 |
requestTimeout (producer) | 在调用远程服务器时,允许在 Netty producer 中使用超时。默认情况下,不使用超时。该值以秒为单位,因此 eg 30000 为 30 秒。requestTimeout 使用 Netty 的 ReadTimeoutHandler 来触发超时。 | long | |
clientInitializerFactory (producer (advanced)) | 使用自定义 ClientInitializerFactory。 | ClientInitializerFactory | |
correlationManager (producer (advanced)) | 要使用自定义关联管理器,在将 request/reply 与 netty producer 搭配使用时,管理请求和回复消息的方式。只有当您有办法将请求与回复一起映射时,才应使用此参数,例如,在请求和回复消息中存在关联 ids 时。如果您希望在 netty 的同一频道(也称为 连接)上的多路并发消息,则可以使用它。执行此操作时,您必须有一种方法来关联请求和回复消息,以便您可以在 inflight Camel Exchange 上存储正确的回复,然后再继续路由。我们建议在构建自定义关联管理器时扩展 TimeoutCorrelationManagerSupport。这支持超时和其他复杂性,否则您还需要实施。如需了解更多详细信息,请参阅 producerPoolEnabled 选项。 | NettyCamelStateCorrelationManager | |
lazyChannelCreation (生成者(高级) | 如果远程服务器没有启动并在 Camel 制作者启动时运行,则可以创建频道以避免异常。 | true | 布尔值 |
producerPoolEnabled (producer (advanced)) | 是否启用了制作者池。重要:如果您关闭这个连接,则也会将单个共享连接用于制作者。这意味着,如果回复没有排序,则可能会出现交错响应的问题。因此,您需要在请求和回复消息中有一个关联 id,以便您可以正确地将回复与负责继续处理 Camel 消息的 Camel 回调相关联。为此,您需要实施 NettyCamelStateCorrelationManager 作为关联管理器,并通过 correlationManager 选项进行配置。如需更多详细信息,请参阅 correlationManager 选项。 | true | 布尔值 |
producerPoolMaxIdle (producer (advanced)) | 根据池中空闲实例的数量设置 cap。 | 100 | int |
producerPoolMaxTotal (生成者(高级) | 设置给定时间上可由池分配(签出给客户端)或闲置等待签出的对象数量上限。对没有限制使用负值。 | -1 | int |
producerPoolMinEvictableIdle (producer (advanced)) | 设置对象可能处于空闲时间的最小值(以millis 中的值),然后才能被闲置对象驱除器进行驱除。 | 300000 | long |
producerPoolMinIdle (producer (advanced)) | 在驱除器线程(如果为 active)生成新对象前,设置制作者池中允许的最小实例数量。 | int | |
udpConnectionlessSending (生成(高级) | 这个选项支持连接较少的 udp 发送,这些连接是实际触发和忘记。如果没有侦听接收端口,则连接的 udp 会接收 PortUnreachableException。 | false | 布尔值 |
useByteBuf (producer (advanced)) | 如果 useByteBuf 为 true,netty producer 会在发送邮件前将消息正文转换为 ByteBuf。 | false | 布尔值 |
hostnameVerification ( security) | 要在 SSLEngine 上启用/禁用主机名验证。 | false | 布尔值 |
allowSerializedHeaders (高级) | 仅在 transferExchange 为 true 时用于 TCP。当设置为 true 时,标头和属性中的串行对象将添加到交换中。否则,Camel 将排除任何非序列化对象,并在 WARN 级别记录它。 | false | 布尔值 |
channelGroup (高级) | 使用显式 ChannelGroup。 | ChannelGroup | |
nativeTransport (高级) | 是否使用原生传输而不是 NIO。原生传输利用主机操作系统,且只在某些平台上受支持。您需要为您使用的主机操作系统添加 netty JAR。要查看更多详情,请访问: | false | 布尔值 |
选项 (高级) | 允许使用 选项配置额外的 netty 选项。作为前缀。例如 option.child.keepAlive=false 来设置 netty 选项 sub.keepAlive=false。有关可以使用的选项,请参阅 Netty 文档。 | Map | |
receiveBufferSize (advanced) | 在入站通信期间使用的 TCP/UDP 缓冲区大小。大小为字节。 | 65536 | int |
receiveBufferSizePredictor (advanced) | 配置缓冲区大小预测器。请参阅 Jetty 文档和此邮件线程的详细信息。 | int | |
sendBufferSize (advanced) | 在出站通信期间使用的 TCP/UDP 缓冲区大小。大小为字节。 | 65536 | int |
同步 (高级) | 设置是否应严格使用同步处理。 | false | 布尔值 |
transferExchange (advanced) | 仅用于 TCP。您可以通过线路来传输交换,而不只是正文。以下字段已传输:在正文、出口正文、错误正文、In headers、out 标头、错误标头、交换属性、交换属性中。这要求对象是串行的。Camel 将排除任何非序列化对象,并在 WARN 级别记录它。 | false | 布尔值 |
udpByteArrayCodec (advanced) | 仅针对 UDP。如果启用使用字节数组 codec 而不是 Java 序列化协议。 | false | 布尔值 |
workerCount (高级) | 当 netty 在 nio 模式下工作时,它使用 Netty (cpu_core_threads x 2)的默认 workerCount 参数。用户可以使用此选项覆盖 Netty 中的默认 workerCount。 | int | |
WorkerGroup (高级) | 使用显式 EventLoopGroup 作为 boss 线程池。例如,与多个消费者或生成者共享线程池。默认情况下,每个使用者或制作者都有自己的 worker 池,具有 2 x cpu count core 线程。 | EventLoopGroup | |
allowDefaultCodec (codec) | netty 组件同时会安装一个默认的 codec,编码器/解码器为 null,textline 为 false。将 allowDefaultCodec 设置为 false 可防止 netty 组件将默认 codec 安装为过滤器链中的第一个元素。 | true | 布尔值 |
autoAppendDelimiter (codec) | 使用文本代码c发送时是否自动附加缺少的结束分隔符。 | true | 布尔值 |
decoderMaxLineLength (codec) | 用于文本line codec 的最大行长度。 | 1024 | int |
decoders (codec) | 要使用的解码器列表。您可以使用带有逗号分隔值的 String,并在 Registry 中查找值。只需记得使用 # 为值添加前缀,以便 Camel 知道它应该查找。 | list | |
分隔符 (codec) | 用于文本解码器的分隔符。可能的值有 LINE 和 NULL。 Enum 值:
| 行 | TextLineDelimiter |
编码器 (codec) | 要使用的编码器列表。您可以使用带有逗号分隔值的 String,并在 Registry 中查找值。只需记得使用 # 为值添加前缀,以便 Camel 知道它应该查找。 | list | |
编码 (codec) | 用于文本代码的编码(charset name)。如果没有提供,Camel 将使用 JVM 默认 Charset。 | 字符串 | |
文本行 (codec) | 仅用于 TCP。如果没有指定 codec,您可以使用此标志来指示基于文本的标志。如果没有指定,或者值为 false,则通过 TCP 假定 Object Serialization,但默认只允许 String 序列化。 | false | 布尔值 |
enabledProtocols (security) | 使用 SSL 时要启用哪些协议。 | TLSv1,TLSv1.1,TLSv1.2 | 字符串 |
keyStoreFile (安全) | 用于加密的客户端证书密钥存储。 | File | |
keyStoreFormat (security) | 用于有效负载加密的密钥存储格式。如果没有设置,则默认为 JKS。 | 字符串 | |
keyStoreResource (security) | 用于加密的客户端证书密钥存储。默认情况下从 classpath 加载,但您可以使用 classpath:、file: 或 http: 前缀来加载来自不同系统的资源。 | 字符串 | |
needClientAuth (security) | 配置服务器在使用 SSL 时是否需要客户端身份验证。 | false | 布尔值 |
密码短语 (安全) | 使用的密码设置,以便加密/解密使用 SSH 发送的载荷。 | 字符串 | |
securityProvider (security) | 用于有效负载加密的安全供应商。如果没有设置,则默认为 SunX509。 | 字符串 | |
SSL (安全) | 设置以指定是否将 SSL 加密应用到此端点。 | false | 布尔值 |
sslClientCertHeaders (security) | 在 SSL 模式中和启用后,Netty consumer 将增强 Camel 消息及标头有关客户端证书的信息,如主题名称、签发者名称、序列号和有效日期范围。 | false | 布尔值 |
sslContextParameters (security) | 使用 SSLContextParameters 配置安全性。 | SSLContextParameters | |
SSLHandler (安全) | 对可用于返回 SSL 处理程序的类的引用。 | SslHandler | |
trustStoreFile (security) | 用于加密的服务器端证书密钥存储。 | File | |
trustStoreResource (security) | 用于加密的服务器端证书密钥存储。默认情况下从 classpath 加载,但您可以使用 classpath:、file: 或 http: 前缀来加载来自不同系统的资源。 | 字符串 |