下表描述了可以设置用于配置 IP 连接的属性:

表 1.连接工厂属性
属性名称 客户? 服务器? 允许的值 属性说明

type

Y

Y

客户端、服务器

确定连接工厂是客户端还是服务器。

host

Y

N

目标的主机名或 IP 地址。

port

Y

Y

端口。

serializer

Y

Y

用于序列化有效负载的实现。 默认值为SerializerByteArrayCrLfSerializer

deserializer

Y

Y

用于反序列化有效负载的实现。 默认值为DeserializerByteArrayCrLfSerializer

using-nio

Y

Y

true,false

连接是否使用 NIO. 有关详细信息,请参阅软件包。 请参阅关于非阻塞 I/O (NIO)。 违约:。java.niofalse

using-direct-buffers

Y

N

true,false

使用 NIO 时,连接是否使用直接缓冲区。 有关详细信息,请参阅文档。 必须是 if is 。java.nio.ByteBufferfalseusing-niofalse

apply-sequence

Y

Y

true,false

使用 NIO 时,可能需要对消息进行重新排序。 当此属性设置为 时,标头将添加到收到的消息中。 请参阅关于非阻塞 I/O (NIO)。 违约:。truecorrelationIdsequenceNumberfalse

so-timeout

Y

Y

默认值为 (无穷大),但具有 的服务器连接工厂除外。 在这种情况下,它默认为默认回复超时(10 秒)。0single-use="true"

so-send-buffer-size

Y

Y

看。java.net.Socket.setSendBufferSize()

so-receive-buffer-size

Y

Y

看。java.net.Socket.setReceiveBufferSize()

so-keep-alive

Y

Y

true,false

看。java.net.Socket.setKeepAlive()

so-linger

Y

Y

设置为提供的值。 看。lingertruejava.net.Socket.setSoLinger()

so-tcp-no-delay

Y

Y

true,false

看。java.net.Socket.setTcpNoDelay()

so-traffic-class

Y

Y

看。java.net.Socket.setTrafficClass()

local-address

N

Y

在多宿主系统上,指定套接字绑定到的接口的 IP 地址。

task-executor

Y

Y

指定用于套接字处理的特定执行程序。 如果未提供,则使用内部缓存的线程执行器。 在某些需要使用特定任务执行器的平台上需要,例如 .WorkManagerTaskExecutor

single-use

Y

Y

true,false

指定一个连接是否可用于多条消息。 如果 ,则为每条消息使用一个新连接。true

pool-size

N

N

不再使用此属性。 为了向后兼容,它设置了积压工作,但应用于指定服务器工厂中的连接积压工作。backlog

backlog

N

Y

设置服务器工厂的连接积压工作。

lookup-host

Y

Y

true,false

指定是否对 IP 地址执行反向查找,以转换为主机名以在邮件头中使用。 如果为 false,则改用 IP 地址。 违约:。false

interceptor-factory-chain

Y

Y

请参阅 TCP 连接拦截器

ssl-context-support

Y

Y

看。SSL/TLS Support

socket-factory-support

Y

Y

看。SSL/TLS Support

socket-support

Y

Y

请参阅 SSL/TLS 支持

nio-connection-support

Y

Y

请参阅高级技术

read-delay

Y

Y

长> 0

由于线程不足,上一次尝试失败后重试读取前的延迟(以毫秒为单位)。 默认值:100。 仅当 为 时才适用。using-niotrue

下表描述了可以设置用于配置 UDP 入站通道适配器的属性:

表 2.UDP 入站通道适配器属性
属性名称 允许的值 属性说明

port

适配器侦听的端口。

multicast

true,false

UDP 适配器是否使用多播。

multicast-address

当多播为 true 时,适配器加入的多播地址。

pool-size

指定可以同时处理的数据包数。 仅当未配置 task-executor 时,它才适用。 默认值:5。

任务执行器

指定用于套接字处理的特定执行程序。 如果未提供,则使用内部共用执行程序。 在某些需要使用特定任务执行器(如 . 有关线程要求,请参阅 pool-size。WorkManagerTaskExecutor

receive-buffer-size

用于接收 的缓冲区的大小。 通常设置为最大传输单元 (MTU) 大小。 如果使用的缓冲区小于发送的数据包的大小,则可能会发生截断。 您可以使用属性来检测这一点。DatagramPacketscheck-length

check-length

true,false

UDP 适配器是否期望接收的数据包中包含数据长度字段。 用于检测数据包截断。

so-timeout

有关详细信息,请参阅中的方法。setSoTimeout()java.net.DatagramSocket

so-send-buffer-size

用于 UDP 确认数据包。 有关详细信息,请参阅 setSendBufferSize() 方法。java.net.DatagramSocket

so-receive-buffer-size

有关详细信息,请参阅。java.net.DatagramSocket.setReceiveBufferSize()

local-address

在多宿主系统上,指定套接字绑定到的接口的 IP 地址。

error-channel

如果下游组件引发异常,则包含异常和失败消息的消息将发送到此通道。MessagingException

lookup-host

true,false

指定是否对 IP 地址执行反向查找,以转换为主机名以在邮件头中使用。 如果 ,则改用 IP 地址。 违约:。falsefalse

下表描述了可以设置用于配置 UDP 出站通道适配器的属性:

表 3.UDP 出站通道适配器属性
属性名称 允许的值 属性说明

host

目标的主机名或 IP 地址。 对于组播 udp 适配器,组播地址。

port

目标端口。

multicast

true,false

udp 适配器是否使用多播。

acknowledge

true,false

UDP 适配器是否需要来自目标的确认。 启用后,它需要设置以下四个属性:、、 和 。ack-hostack-portack-timeoutmin-acks-for- success

ack-host

当为 时,指示应向其发送确认的主机或 IP 地址。 通常是当前主机,但可能有所不同,例如,当使用网络地址转换 (NAT) 时。acknowledgetrue

ack-port

当 为 时,指示应将确认发送到的端口。 适配器在此端口上侦听确认。acknowledgetrue

ack-timeout

当为 时,指示适配器等待确认的时间(以毫秒为单位)。 如果未及时收到确认,适配器将引发异常。acknowledgetrue

min-acks-for- success

默认值为 1。 对于多播适配器,可以将其设置为更大的值,这需要来自多个目标的确认。

check-length

true,false

UDP 适配器是否在发送到目标的数据包中包含数据长度字段。

time-to-live

对于多播适配器,请指定 . 控制组播的范围。 有关更多信息,请参阅 Java API 文档。MulticastSocket

so-timeout

有关更多信息,请参见 setSoTimeout() 方法。java.net.DatagramSocket

so-send-buffer-size

有关详细信息,请参阅中的方法。setSendBufferSize()java.net.DatagramSocket

so-receive-buffer-size

用于 UDP 确认数据包。 有关详细信息,请参阅中的方法。setReceiveBufferSize()java.net.DatagramSocket

本地地址

在多宿主系统上,对于 UDP 适配器,指定套接字绑定到的接口的 IP 地址,以便接收应答消息。 对于组播适配器,它还确定组播数据包通过哪个接口发送。

task-executor

指定要用于确认处理的特定执行程序。 如果未提供,则使用内部单线程执行器。 在某些需要使用特定任务执行器的平台上需要,例如 . 一个线程专用于处理确认(如果选项为 true)。WorkManagerTaskExecutoracknowledge

destination-expression

SpEL表达

要计算的 SpEL 表达式,以确定将哪个表达式用作传出 UDP 数据包的目标地址。SocketAddress

socket-expression

SpEL表达

要计算的 SpEL 表达式,以确定用于发送传出 UDP 数据包的数据报套接字。

下表描述了可以设置用于配置 TCP 入站通道适配器的属性:

表 4.TCP 入站通道适配器属性
属性名称 允许的值 属性说明

channel

将入站消息发送到的通道。

connection-factory

如果连接工厂的类型为 ,则此适配器“拥有”该工厂。 如果它的类型为 ,则它由出站通道适配器“拥有”,并且此适配器在出站适配器创建的连接上接收任何传入消息。serverclient

error-channel

如果下游组件抛出异常,则包含异常的消息和失败的消息将发送到此通道。MessagingException

client-mode

true,false

当 时,入站适配器充当客户端,用于建立连接,然后在该连接上接收传入消息。 违约:。 另请参见 和 。 连接工厂的类型必须为 ,并且已设置为 。truefalseretry-intervalschedulerclientsingle-usefalse

retry-interval

当 in 时,指定连接尝试之间或连接失败后等待的毫秒数。 默认值:60000(60 秒)。client-mode

scheduler

true,false

指定用于管理连接的 a。 如果未指定,则默认为全局 Spring Integration bean,其默认池大小为 10。 请参阅配置任务计划程序TaskSchedulerclient-modetaskScheduler

下表描述了可以设置用于配置 TCP 出站通道适配器的属性:

表 5.TCP 出站通道适配器属性
属性名称 允许的值 属性说明

channel

出站消息到达的通道。

connection-factory

如果连接工厂的类型为 ,则此适配器“拥有”该工厂。 如果它的类型为 ,则它由入站通道适配器“拥有”,并且此适配器尝试将消息与接收原始入站消息的连接相关联。clientserver

client-mode

true,false

当 时,出站适配器会在启动后立即尝试建立连接。 当 时,在发送第一条消息时建立连接。 违约:。 另请参见 和 。 连接工厂的类型必须为 ,并且已设置为 。truefalsefalseretry-intervalschedulerclientsingle-usefalse

retry-interval

当 in 时,指定连接尝试之间或连接失败后等待的毫秒数。 默认值:60000(60 秒)。client-mode

scheduler

true,false

指定用于管理连接的 a。 如果未指定,则默认为全局 Spring Integration bean,其默认池大小为 10。 请参阅配置任务计划程序TaskSchedulerclient-modetaskScheduler

下表描述了可以设置用于配置 TCP 入站网关的属性:

表 6.TCP 入站网关属性
属性名称 允许的值 属性说明

connection-factory

连接工厂必须是服务器类型。

request-channel

将传入消息发送到的通道。

reply-channel

回复消息可能到达的通道。 通常,回复会到达添加到入站邮件头的临时回复通道。

reply-timeout

网关等待回复的时间(以毫秒为单位)。 默认值:1000(1 秒)。

error-channel

如果下游组件抛出异常,则包含异常的消息和失败的消息将发送到此通道。 然后,网关将返回来自该流的任何回复作为响应。MessagingException

client-mode

true,false

当 时,入站网关充当客户端,用于建立连接,然后接收(和回复)该连接上的传入消息。 默认值:false。 另请参见 和 。 连接工厂的类型必须为 ,并且已设置为 。trueretry-intervalschedulerclientsingle-usefalse

retry-interval

当 in 时,指定连接尝试之间或连接失败后等待的毫秒数。 默认值:60000(60 秒)。client-mode

scheduler

true,false

指定用于管理连接的 a。 如果未指定,则默认为全局 Spring Integration bean,其默认池大小为 10。 请参阅配置任务计划程序TaskSchedulerclient-modetaskScheduler

下表描述了可以设置用于配置 TCP 出站网关的属性:

表 7.TCP 出站网关属性
属性名称 允许的值 属性说明

connection-factory

连接工厂的类型必须为 。client

request-channel

传出消息到达的通道。

reply-channel

自选。 将回复消息发送到的通道。

remote-timeout

网关等待远程系统回复的时间(以毫秒为单位)。 与 互斥。 默认值:10000(10 秒)。 注意:在 4.2 之前的版本中,此值默认为(如果已设置)。remote-timeout-expressionreply-timeout

remote-timeout-expression

一个 SpEL 表达式,该表达式根据消息进行评估,以确定网关等待远程系统回复的时间(以毫秒为单位)。 与 互斥。remote-timeout

request-timeout

如果未使用一次性连接工厂,则网关等待访问共享连接的时间(以毫秒为单位)。

reply-timeout

网关在将应答发送到应答通道时等待的时间(以毫秒为单位)。 仅当 reply-channel 可能阻塞(例如当前已满的有界 QueueChannel)时才适用。

async

发送后释放发送线程;回复(或错误)将在接收线程上发送。

unsolicited MessageChannel

发送未经请求的消息和延迟回复的渠道。