IP 組態屬性

下表描述您可以設定以組態 IP 連線的屬性

表 1. 連線工廠屬性
屬性名稱 用戶端? 伺服器? 允許值 屬性描述

type

client, server

決定連線工廠是用戶端還是伺服器。

host

目的地的主機名稱或 IP 位址。

port

連接埠。

serializer

用於序列化 Payload 的 Serializer 實作。預設為 ByteArrayCrLfSerializer

deserializer

用於還原序列化 Payload 的 Deserializer 實作。預設為 ByteArrayCrLfSerializer

using-nio

true, false

連線是否使用 NIO。請參閱 java.nio 套件以取得更多資訊。請參閱 關於非阻塞 I/O (NIO)。預設值:false

using-direct-buffers

true, false

當使用 NIO 時,連線是否使用直接緩衝區。請參閱 java.nio.ByteBuffer 文件以取得更多資訊。如果 using-niofalse,則必須為 false

apply-sequence

true, false

當您使用 NIO 時,可能需要重新排序訊息。當此屬性設定為 true 時,correlationIdsequenceNumber 標頭會新增至接收的訊息。請參閱 關於非阻塞 I/O (NIO)。預設值:false

so-timeout

預設為 0 (無限),但具有 single-use="true" 的伺服器連線工廠除外。在這種情況下,它預設為預設回覆逾時 (10 秒)。

so-send-buffer-size

請參閱 java.net.Socket. setSendBufferSize()

so-receive-buffer-size

請參閱 java.net.Socket. setReceiveBufferSize()

so-keep-alive

true, false

請參閱 java.net.Socket.setKeepAlive()

so-linger

linger 設定為 true 並具有提供的值。請參閱 java.net.Socket.setSoLinger()

so-tcp-no-delay

true, false

請參閱 java.net.Socket.setTcpNoDelay()

so-traffic-class

請參閱 java.net.Socket. setTrafficClass()

local-address

在多宿主系統上,指定要將 Socket 繫結到的介面 IP 位址。

task-executor

指定要用於 Socket 處理的特定執行器。如果未提供,則會使用內部快取執行緒執行器。在某些需要使用特定任務執行器的平台上是必要的,例如 WorkManagerTaskExecutor

single-use

true, false

指定連線是否可用於多個訊息。如果為 true,則每個訊息都會使用新的連線。

pool-size

此屬性不再使用。為了向後相容性,它設定了積壓工作,但您應該使用 backlog 來指定伺服器工廠中的連線積壓工作。

backlog

設定伺服器工廠的連線積壓工作。

lookup-host

true, false

指定是否對 IP 位址執行反向查閱,以轉換為主機名稱以用於訊息標頭中。如果為 false,則改為使用 IP 位址。預設值:false

interceptor-factory-chain

請參閱 TCP 連線攔截器

ssl-context-support

請參閱 SSL/TLS 支援

socket-factory-support

請參閱 SSL/TLS 支援

socket-support

請參閱 SSL/TLS 支援

nio-connection-support

請參閱 進階技術

read-delay

long > 0

在先前嘗試因執行緒不足而失敗後,重試讀取之前的延遲 (以毫秒為單位)。預設值:100。僅在 using-niotrue 時適用。

下表描述您可以設定以組態 UDP 輸入通道配接器的屬性

表 2. UDP 輸入通道配接器屬性
屬性名稱 允許值 屬性描述

port

配接器接聽的連接埠。

multicast

true, false

UDP 配接器是否使用多播。

multicast-address

當多播為 true 時,配接器加入的多播位址。

pool-size

指定可以同時處理多少封封包。僅在未組態 task-executor 時適用。預設值:5。

task-executor

指定要用於 Socket 處理的特定執行器。如果未提供,則會使用內部集區執行器。在某些需要使用特定任務執行器的平台上是必要的,例如 WorkManagerTaskExecutor。請參閱 pool-size 以瞭解執行緒需求。

receive-buffer-size

用於接收 DatagramPackets 的緩衝區大小。通常設定為最大傳輸單位 (MTU) 大小。如果使用的緩衝區小於傳送封包的大小,則可能會發生截斷。您可以使用 check-length 屬性來偵測此情況。

check-length

true, false

UDP 配接器是否預期接收到的封包中包含資料長度欄位。用於偵測封包截斷。

so-timeout

請參閱 java.net.DatagramSocket 中的 setSoTimeout() 方法以取得更多資訊。

so-send-buffer-size

用於 UDP 應答封包。請參閱 java.net.DatagramSocket 中的 setSendBufferSize() 方法以取得更多資訊。

so-receive-buffer-size

請參閱 java.net.DatagramSocket.setReceiveBufferSize() 以取得更多資訊。

local-address

在多宿主系統上,指定要將 Socket 繫結到的介面 IP 位址。

error-channel

如果下游元件擲回例外,則包含例外和失敗訊息的 MessagingException 訊息會傳送至此通道。

lookup-host

true, false

指定是否對 IP 位址執行反向查閱,以轉換為主機名稱以用於訊息標頭中。如果為 false,則改為使用 IP 位址。預設值:false

下表描述您可以設定以組態 UDP 輸出通道配接器的屬性

表 3. UDP 輸出通道配接器屬性
屬性名稱 允許值 屬性描述

host

目的地的主機名稱或 IP 位址。對於多播 UDP 配接器,為多播位址。

port

目的地上的連接埠。

multicast

true, false

UDP 配接器是否使用多播。

acknowledge

true, false

UDP 配接器是否需要來自目的地的應答。啟用時,需要設定以下四個屬性:ack-hostack-portack-timeoutmin-acks-for- success

ack-host

acknowledgetrue 時,表示應將應答傳送到的主機或 IP 位址。通常是目前主機,但可能不同,例如,當使用網路位址轉譯 (NAT) 時。

ack-port

acknowledgetrue 時,表示應將應答傳送到的連接埠。配接器會在此連接埠上接聽應答。

ack-timeout

acknowledgetrue 時,表示配接器等待應答的時間 (以毫秒為單位)。如果未及時收到應答,配接器會擲回例外。

min-acks-for- success

預設值為 1。對於多播配接器,您可以將此值設定為較大的值,這需要來自多個目的地的應答。

check-length

true, false

UDP 配接器是否在傳送至目的地的封包中包含資料長度欄位。

time-to-live

對於多播配接器,指定 MulticastSocket 的存活時間屬性。控制多播的範圍。請參閱 Java API 文件以取得更多資訊。

so-timeout

請參閱 java.net.DatagramSocket setSoTimeout() 方法以取得更多資訊。

so-send-buffer-size

請參閱 java.net.DatagramSocket 中的 setSendBufferSize() 方法以取得更多資訊。

so-receive-buffer-size

用於 UDP 應答封包。請參閱 java.net.DatagramSocket 中的 setReceiveBufferSize() 方法以取得更多資訊。

local-address

在多宿主系統上,對於 UDP 配接器,指定要將 Socket 繫結到的介面 IP 位址以用於回覆訊息。對於多播配接器,它也決定了多播封包透過哪個介面傳送。

task-executor

指定要用於應答處理的特定執行器。如果未提供,則會使用內部單執行緒執行器。在某些需要使用特定任務執行器的平台上是必要的,例如 WorkManagerTaskExecutor。一個執行緒專用於處理應答 (如果 acknowledge 選項為 true)。

destination-expression

SpEL 運算式

要評估的 SpEL 運算式,以決定要使用哪個 SocketAddress 作為傳出 UDP 封包的目的地位址。

socket-expression

SpEL 運算式

要評估的 SpEL 運算式,以決定要使用哪個 Datagram Socket 來傳送傳出 UDP 封包。

下表描述您可以設定以組態 TCP 輸入通道配接器的屬性

表 4. TCP 輸入通道配接器屬性
屬性名稱 允許值 屬性描述

channel

傳入訊息傳送到的通道。

connection-factory

如果連線工廠的類型為 server,則工廠由此配接器「擁有」。如果其類型為 client,則由輸出通道配接器「擁有」,且此配接器會接收輸出配接器建立的連線上的任何傳入訊息。

error-channel

如果下游元件擲回例外,則包含例外和失敗訊息的 MessagingException 訊息會傳送至此通道。

client-mode

true, false

true 時,輸入配接器充當用戶端,以建立連線,然後在該連線上接收傳入訊息。預設值:false。另請參閱 retry-intervalscheduler。連線工廠的類型必須為 client,且 single-use 必須設定為 false

retry-interval

client-mode 中時,指定連線嘗試之間或連線失敗後要等待的毫秒數。預設值:60000 (60 秒)。

scheduler

true, false

指定要用於管理 client-mode 連線的 TaskScheduler。如果未指定,則預設為全域 Spring Integration taskScheduler Bean,其預設集區大小為 10。請參閱 設定任務排程器

下表描述您可以設定以組態 TCP 輸出通道配接器的屬性

表 5. TCP 輸出通道配接器屬性
屬性名稱 允許值 屬性描述

channel

傳出訊息到達的通道。

connection-factory

如果連線工廠的類型為 client,則工廠由此配接器「擁有」。如果其類型為 server,則由輸入通道配接器「擁有」,且此配接器會嘗試將訊息關聯到接收原始傳入訊息的連線上。

client-mode

true, false

true 時,輸出配接器會在啟動後立即嘗試建立連線。當 false 時,會在傳送第一個訊息時建立連線。預設值:false。另請參閱 retry-intervalscheduler。連線工廠的類型必須為 client,且 single-use 必須設定為 false

retry-interval

client-mode 中時,指定連線嘗試之間或連線失敗後要等待的毫秒數。預設值:60000 (60 秒)。

scheduler

true, false

指定要用於管理 client-mode 連線的 TaskScheduler。如果未指定,則預設為全域 Spring Integration taskScheduler Bean,其預設集區大小為 10。請參閱 設定任務排程器

下表描述您可以設定以組態 TCP 輸入閘道器的屬性

表 6. TCP 輸入閘道器屬性
屬性名稱 允許值 屬性描述

connection-factory

連線工廠的類型必須為伺服器。

request-channel

傳入訊息傳送到的通道。

reply-channel

回覆訊息可能到達的通道。通常,回覆會到達新增至傳入訊息標頭的暫時回覆通道。

reply-timeout

閘道器等待回覆的時間 (以毫秒為單位)。預設值:1000 (1 秒)。

error-channel

如果下游元件擲回例外,則包含例外和失敗訊息的 MessagingException 訊息會傳送至此通道。來自該流程的任何回覆隨後會由閘道器作為回應傳回。

client-mode

true, false

true 時,輸入閘道器充當用戶端,以建立連線,然後在該連線上接收 (和回覆) 傳入訊息。預設值:false。另請參閱 retry-intervalscheduler。連線工廠的類型必須為 client,且 single-use 必須設定為 false

retry-interval

client-mode 中時,指定連線嘗試之間或連線失敗後要等待的毫秒數。預設值:60000 (60 秒)。

scheduler

true, false

指定要用於管理 client-mode 連線的 TaskScheduler。如果未指定,則預設為全域 Spring Integration taskScheduler Bean,其預設集區大小為 10。請參閱 設定任務排程器

下表描述您可以設定以組態 TCP 輸出閘道器的屬性

表 7. TCP 輸出閘道器屬性
屬性名稱 允許值 屬性描述

connection-factory

連線工廠的類型必須為 client

request-channel

傳出訊息到達的通道。

reply-channel

選用。回覆訊息傳送到的通道。

remote-timeout

閘道器等待來自遠端系統回覆的時間 (以毫秒為單位)。與 remote-timeout-expression 互斥。預設值:10000 (10 秒)。注意:在 4.2 之前的版本中,此值預設為 reply-timeout (如果已設定)。

remote-timeout-expression

針對訊息評估的 SpEL 運算式,以決定閘道器等待來自遠端系統回覆的時間 (以毫秒為單位)。與 remote-timeout 互斥。

request-timeout

如果未使用單次使用連線工廠,則閘道器等待存取共用連線的時間 (以毫秒為單位)。

reply-timeout

當將回覆傳送至 reply-channel 時,閘道器等待的時間 (以毫秒為單位)。僅在 reply-channel 可能封鎖時適用 (例如,目前已滿的有界 QueueChannel)。

async

在傳送後釋放傳送執行緒;回覆 (或錯誤) 將在接收執行緒上傳送。

unsolicited MessageChannel

要將未經請求的訊息和延遲回覆傳送到的通道。