群集接收器物件
目錄
簡介
接收器元件負責接收群集訊息。您可能從設定中注意到,訊息接收和訊息傳送是兩個不同的元件,這與許多其他架構不同,但這樣做有充分的理由,就是將訊息傳送的邏輯與訊息接收的方式分開。
接收器非常類似於 Tomcat Connector,它是用於接收群集訊息的執行緒池的基礎。接收器很直觀,但所有用於接收流量的 socket 設定都在這裡管理。
接收器
接收器支援非封鎖的 org.apache.catalina.tribes.transport.nio.NioReceiver
接收器。
使用非封鎖接收器允許您使用非常有限的執行緒數來處理大量訊息。通常的規則是,對於小型群集,每個群集節點使用 1 個執行緒,然後根據您的訊息頻率和硬體,您會發現最佳執行緒數在某個數字達到峰值。
屬性
共用屬性
屬性 | 說明 |
---|---|
className |
接收器元件的實作。org.apache.catalina.tribes.transport.nio.NioReceiver 由 Tomcat 提供。
|
address |
偵聽傳入流量的位址(網路介面)。與繫結位址相同。預設值為 auto ,並轉換為 java.net.InetAddress.getLocalHost().getHostAddress() 。
|
direct |
可能的值為 true 或 false 。如果您希望接收器在從 socket 讀取資料時使用直接 bytebuffer,請設定為 true。
|
port |
傳入資料的偵聽埠。預設值為 4000 。為避免埠衝突,接收器會自動繫結到 port <= bindPort < port+autoBind 範圍內的可用埠。例如,如果埠為 4000,而 autoBind 設定為 10,則接收器將在 4000-4009 範圍內的第一個可用埠上開啟伺服器 socket。
|
autoBind |
預設值為 100 。如果您希望自動避免埠衝突,請使用此值,群集接收器將嘗試在 port 屬性埠上開啟伺服器 socket,然後執行 autoBind 次數。
|
securePort | 安全的偵聽埠。此埠已啟用 SSL。如果省略此屬性,則不會開啟 SSL 埠。預設值未設定,表示沒有可用的 SSL socket。 |
udpPort | UDP 偵聽埠。如果省略此屬性,則不會開啟 UDP 埠。預設值未設定,表示沒有可用的 UDP 偵聽器。 |
selectorTimeout |
NioReceiver 中輪詢逾時的值(以毫秒為單位)。在 JDK 的舊版本中,存在一些錯誤,這些錯誤現在都應該已清除,其中選擇器從未喚醒。預設值為非常高的 5000 毫秒。
|
maxThreads |
接收器執行緒池中的最大執行緒數。預設值為 15 。根據群集中節點的數量、交換的訊息數量以及您執行的硬體,調整此值。較高的值並不表示效率較高,請根據您自己的測試結果調整此值。
|
minThreads |
接收器啟動時建立的最少執行緒數目。預設值為 6
|
maxIdleTime |
閒置執行緒終止前最長毫秒數。預設值為 60000 毫秒。
|
ooBInline |
Socket OOBINLINE 選項的布林值。可能的值為 true 或 false 。
|
rxBufSize |
接收 Socket 上的接收器緩衝區大小。值以位元組為單位,預設值為 65536 位元組。
|
txBufSize |
接收 Socket 上的傳送緩衝區大小。值以位元組為單位,預設值為 25188 位元組。
|
udpRxBufSize |
資料報 Socket 上的接收緩衝區大小。預設值為 25188 位元組。
|
udpTxBufSize |
資料報 Socket 上的傳送緩衝區大小。預設值為 65536 位元組。
|
soKeepAlive |
Socket SO_KEEPALIVE 選項的布林值。可能的值為 true 或 false 。
|
soLingerOn |
布林值,用於判斷是否使用 SO_LINGER Socket 選項。可能的值為 true 或 false 。預設值為 true 。
|
soLingerTime |
設定 SO_LINGER Socket 選項時間值。值以秒為單位。預設值為 3 秒。
|
soReuseAddress |
Socket SO_REUSEADDR 選項的布林值。可能的值為 true 或 false 。
|
tcpNoDelay |
Socket TCP_NODELAY 選項的布林值。可能的值為 true 或 false 。預設值為 true
|
timeout |
在 Socket 上設定 SO_TIMEOUT 選項。值以毫秒為單位,預設值為 3000 毫秒。
|
useBufferPool |
布林值,表示是否使用快取的 org.apache.catalina.tribes.io.XByteBuffer 物件的共用緩衝區池。如果設定為 true,用於將訊息傳遞到通道的 XByteBuffer 將在要求結束時回收。這表示通道中的攔截器在 org.apache.catalina.tribes.ChannelInterceptor#messageReceived 方法結束後,不得保留對物件的參照。
|