附录 A. acceptor 和 Connector 配置参数
下表详细介绍了一些用于配置 Netty 网络连接的可用参数。参数及其值附加到连接字符串的 URI 中。如需更多信息,请参阅在 网络连接中配置接收器和连接器。每个表按名称列出参数,并记录这些参数是否与接收器或连接器一起使用。例如,您只能在 acceptors 中使用一些参数。
所有 Netty 参数都在类 org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants 中定义。源代码可以在客户门户网站 上下载。http://access.redhat.com/downloads
| 参数 | 与… 一起使用 | 描述 |
|---|---|---|
| batchDelay | 两者都 |
在将数据包写入接受者或连接器之前,可将代理配置为批量写入最多 |
| connectionsAllowed | acceptors |
限制接受者允许的连接数量。当达到这个限制时,会为日志发出 DEBUG 级别的消息,连接被拒绝。使用的客户端类型决定了连接被拒绝时会发生什么。默认值为 |
| directDeliver | 两者都 |
当消息到达服务器并传送到等待消费者时,默认情况下,发送会在与消息到达的同一线程上进行。这在具有相对较小的消息和少量消费者的环境中提供了很好的延迟,但以总体吞吐量和可扩展性为代价,特别是在多核机器上。如果您希望获得最低延迟并可能降低吞吐量,那么您可以将默认值用于 |
| handshake-timeout | acceptors | 防止未授权客户端打开大量连接并保持打开状态。由于每个连接都需要一个文件句柄,所以它会消耗资源,然后可供其他客户端使用。 此超时限制连接可以消耗资源的时间,而无需经过身份验证。验证连接后,您可以使用资源限制设置来限制资源消耗。
默认值为 编辑超时值后,您必须重启代理。 |
| localAddress | 连接器 | 指定客户端在连接到远程地址时使用的本地地址。这通常用于应用服务器,或者在运行嵌入式时用于控制用于出站连接的地址。如果没有设置本地地址,则连接器将使用任何可用的本地地址。 |
| localPort | 连接器 | 指定客户端在连接到远程地址时使用的本地端口。这通常用于应用服务器,或者在运行嵌入式时用于控制用于出站连接的端口。如果使用默认值,即 0,则连接器将让系统获取临时端口。有效端口为 0 到 65535 |
| nioRemotingThreads | 两者都 |
当配置为使用 NIO 时,代理默认使用与处理传入的数据包所报告的内核数(或超线程)相同的线程数。 |
| tcpNoDelay | 两者都 |
如果为 |
| tcpReceiveBufferSize | 两者都 |
确定 TCP 接收缓冲区的大小(以字节为单位)。默认值为 |
| tcpSendBufferSize | 两者都 |
确定 TCP 发送缓冲区的大小(以字节为单位)。默认值为 应根据网络的带宽和延迟调整 TCP 缓冲区大小。 总的 TCP 发送/接收缓冲区大小应计算为: buffer_size = bandwidth * RTT.
其中带宽每秒字节数,网络往返用时(RTT)以秒为单位。可以使用 对于快速网络,您可能想要从默认值增加缓冲区大小。 |
| 参数 | 与… 一起使用 | 描述 |
|---|---|---|
| httpClientIdleTime | acceptors | 在发送空 HTTP 请求前,客户端可以闲置多久,以保持连接处于活动状态。 |
| httpClientIdleScanPeriod | acceptors | 扫描空闲客户端的频率(以毫秒为单位)。 |
| httpEnabled | acceptors | 不再需要。有了单一端口支持,代理现在将自动检测是否使用 HTTP 并配置其自身。 |
| httpRequiresSessionId | 两者都 |
如果为 |
| httpResponseTime | acceptors | 服务器在发送空 HTTP 响应前可以等待的时间,以保持连接处于活动状态。 |
| httpServerScanPeriod | acceptors | 扫描需要响应的客户端的频率,以毫秒为单位。 |
| 参数 | 与… 一起使用 | 描述 |
|---|---|---|
| enabledCipherSuites | 两者都 | 用于 SSL 通信的密码套件的逗号分隔列表。
指定客户端应用程序支持的最安全密码套件。如果您指定了代理和客户端通用的、以逗号分隔的密码套件列表,或者您没有指定任何密码套件、代理和客户端相互协商要使用的密码套件。如果您不知道要指定哪个密码套件,您可以首先与以 debug 模式运行的客户端建立 broker-client 连接,以验证代理和客户端通用的密码套件。然后,在代理上配置
可用的密码套件取决于代理和客户端使用的 TLS 协议版本。如果在升级代理后默认 TLS 协议版本有变化,您可能需要选择早期的 TLS 协议版本,以确保代理和客户端可以使用通用密码套件。如需更多信息,请参阅 |
| enabledProtocols | 两者都 | 用于 SSL 通信的 TLS 协议版本的逗号分隔列表。如果没有指定 TLS 协议版本,代理将使用 JVM 的默认版本。
如果代理使用 JVM 的默认 TLS 协议版本,且升级代理后该版本会改变,代理和客户端使用的 TLS 协议版本可能会不兼容。虽然建议您使用更新的 TLS 协议版本,但您可以在 |
| forceSSLParameters | 连接器 |
控制是否在连接器上设置为参数设置的任何 SSL 设置,而不是 JVM 系统属性(包括
有效值为 |
| keyStorePassword | 两者都 | 在 acceptor 上使用时,这是服务器端密钥存储的密码。
在连接器中使用时,这是客户端密钥存储的密码。这只有在您使用双向 SSL (即 mutual 身份验证)时与连接器相关。虽然可以在服务器上配置这个值,但它被下载并供客户端使用。如果客户端需要使用与服务器上设置的不同密码,那么它可以使用 customary |
| keyStorePath | 两者都 | 当在接受人上使用时,这是包含服务器证书的服务器上 SSL 密钥存储的路径(无论是由权威自签名还是由权威签名)。
当在连接器中使用时,这是包含客户端证书的客户端 SSL 密钥存储的路径。这只有在您使用双向 SSL (即 mutual 身份验证)时与连接器相关。虽然在服务器上配置了这个值,但它被下载并供客户端使用。如果客户端需要使用与服务器上设置的不同路径,那么它可以使用 customary |
| keyStoreAlias | 两者都 | 当在接受器上使用时,这是在客户端连接时,密钥存储中要存在的键的别名。在连接器中使用时,这是当客户端连接到时,密钥存储中要存在的键的别名。这只适用于使用双向 SSL (即 mutual 身份验证)的连接器。 |
| needClientAuth | acceptors |
告知客户端连接到此接收器,或者需要双向 SSL。有效值为 |
| sslEnabled | 两者都 |
必须 |
| sslAutoReload | acceptors |
如果设置为 |
| trustManagerFactoryPlugin | 两者都 |
定义实现
这是一个简单的接口,它有一个返回
您需要将任何指定的插件放在代理的 Java 类路径上。您可以使用 < |
| trustStorePassword | 两者都 | 在接收器中使用时,这是服务器端信任存储的密码。只有在使用双向 SSL (即 mutual 身份验证)时,这才与接受者相关。
当在连接器中使用时,这是客户端信任存储的密码。虽然可以在服务器上配置这个值,但它被下载并供客户端使用。如果客户端需要使用与服务器上设置的不同密码,那么它可以使用 customary |
| sniHost | 两者都 |
当在接收器中使用时,
如果传入连接不包含
在连接器中使用时, |
| sslProvider | 两者都 |
用于在
如果设置为 如果要使用通过 OpenSSL 支持的特殊 ciphersuite-elliptic curve 组合,但没有通过 JDK 供应商支持,这个选项很有用。 |
| trustStorePath | 两者都 | 当用于接受者时,这是包含服务器信任的所有客户端的密钥的服务器端 SSL 密钥存储的路径。只有在使用双向 SSL (即 mutual 身份验证)时,这才与接受者相关。
当在连接器中使用时,这是客户端 SSL 密钥存储的路径,其中包含客户端信任的所有服务器的公钥。虽然可以在服务器上配置这个值,但它被下载并供客户端使用。如果客户端需要使用与服务器上设置的不同路径,那么它可以使用 customary |
| useDefaultSslContext | 连接器 |
允许连接器使用 "default" SSL 上下文(通过
如果此参数设为 |
| verifyHost | 两者都 | 在连接器中使用时,服务器 SSL 证书的 CN 或 Subject Alternative Name 值会与连接到的主机名进行比较,以验证它们是否匹配。这对单向和双向 SSL 都很有用。 当在接收器中使用时,连接客户端的 SSL 证书的 CN 或 Subject Alternative Name 值会与其主机名进行比较,以验证它们是否匹配。这仅适用于双向 SSL。
有效值为 |
| wantClientAuth | acceptors |
告知客户端连接到此接收器,或者请求双向 SSL,但不需要。有效值为
如果属性 |