群集接收器对象

目录

简介

接收器组件负责接收群集消息。正如您可能通过配置注意到的,接收消息和发送消息是两个不同的组件,这与许多其他框架不同,但这样做有充分的理由,即解耦如何发送消息与如何接收消息的逻辑。
接收器非常类似于 Tomcat 连接器,它是用于传入群集消息的线程池的基础。接收器非常简单,但此处管理了传入流量的所有套接字设置。

接收器

接收器支持非阻塞 org.apache.catalina.tribes.transport.nio.NioReceiver 接收器。
使用非阻塞接收器允许您使用非常有限的线程数来处理大量消息。通常的规则是,对于小型群集,每个群集节点使用 1 个线程,然后根据您的消息频率和硬件,您会发现最佳线程数在某个数字处达到峰值。

属性

通用属性

属性 说明
className 接收器组件的实现。org.apache.catalina.tribes.transport.nio.NioReceiver 由 Tomcat 提供。
地址 用于侦听传入流量的地址(网络接口)。与绑定地址相同。默认值为 auto,并转换为 java.net.InetAddress.getLocalHost().getHostAddress()
直接 可能的值为 truefalse。如果希望接收器在从套接字读取数据时使用直接字节缓冲区,请将其设置为 true。
端口 传入数据的侦听端口。默认值为 4000。为了避免端口冲突,接收器将自动绑定到 port <= bindPort < port+autoBind 范围内的可用端口。因此,例如,如果端口为 4000,并且 autoBind 设置为 10,则接收器将在 4000-4009 范围内的第一个可用端口上打开服务器套接字。
autoBind 默认值为 100。如果您希望自动避免端口冲突,请使用此值,集群接收器将尝试在 port 属性端口上打开服务器套接字,然后向上处理 autoBind 次数。
安全端口 安全侦听端口。此端口已启用 SSL。如果省略此属性,则不会打开 SSL 端口。默认值未设置,这意味着没有可用的 SSL 套接字。
udp 端口 UDP 侦听端口。如果省略此属性,则不会打开 UDP 端口。默认值未设置,这意味着没有可用的 UDP 侦听器。
selectorTimeout NioReceiver 中轮询超时的毫秒值。在 JDK 的较旧版本中存在一些错误,现在应该全部清除,其中选择器从未唤醒。默认值为非常高的 5000 毫秒。
maxThreads 接收器线程池中的最大线程数。默认值为 15 根据集群中的节点数、交换的消息数以及您正在运行的硬件调整此值。较高的值并不意味着更高的效率,请根据您自己的测试结果调整此值。
minThreads 启动接收器时要创建的最小线程数。默认值为 6
maxIdleTime 空闲线程终止前允许的最大毫秒数。默认值为 60000 毫秒。
ooBInline 套接字 OOBINLINE 选项的布尔值。可能的值为 truefalse
rxBufSize 接收套接字上的接收器缓冲区大小。值为字节,默认值为 65536 字节。
txBufSize 接收套接字上的发送缓冲区大小。值为字节,默认值为 25188 字节。
udpRxBufSize 数据报套接字上的接收缓冲区大小。默认值为 25188 字节。
udpTxBufSize 数据报套接字上的发送缓冲区大小。默认值为 65536 字节。
soKeepAlive 套接字 SO_KEEPALIVE 选项的布尔值。可能的值为 truefalse
soLingerOn 布尔值,用于确定是否使用 SO_LINGER 套接字选项。可能的值为 truefalse。默认值为 true
soLingerTime 设置 SO_LINGER 套接字选项时间值。该值为秒。默认值为 3 秒。
soReuseAddress 套接字 SO_REUSEADDR 选项的布尔值。可能的值为 truefalse
tcpNoDelay 套接字 TCP_NODELAY 选项的布尔值。可能的值为 truefalse。默认值为 true
timeout 在套接字上设置 SO_TIMEOUT 选项。该值为毫秒,默认值为 3000 毫秒。
useBufferPool 布尔值,表示是否使用缓存的 org.apache.catalina.tribes.io.XByteBuffer 对象的共享缓冲池。如果设置为 true,则用于通过通道传递消息的 XByteBuffer 将在请求结束时回收。这意味着通道中的拦截器在 org.apache.catalina.tribes.ChannelInterceptor#messageReceived 方法退出后不得保留对该对象的引用。

NioReceiver

BioReceiver