我目前有一个Spring Integration应用程序,该应用程序将许多TCP入站和出站适配器组合用于消息处理。这些组合中的每个入站适配器都使用TcpNioServerConnectionFactory
。我希望以仅一个客户端一次可以建立到相应端口的连接的方式配置这些连接工厂。在给定端口尝试的任何其他连接都需要被拒绝,直到当前客户端连接被删除或删除为止。
通过一些初步研究,我发现Multi Accept
的Multi Accept
属性似乎很有希望。将此属性设置为false是否可以完成我需要的工作,还是需要做更多工作来确保连接工厂将按需要处理连接?
否;该属性是无关的,它是关于优先于读取而不是接受新连接的。
您可以捕获连接打开事件并立即关闭其他连接;这是一个简单的启动应用程序作为示例:
TcpNioServerConnectionFactory
2019-12-20 13:50:18.842 INFO 86323 --- [pool-1-thread-1] com.example.demo.So59429748应用程序:连接过多(2);正在关闭localhost:49562:1234:b4d65f24-158c-4784-87dd-9b5e875aa08a
2019-12-20 13:50:18.843 INFO 86323 --- [main] com.example.demo.So59429748应用程序:第二个套接字上的EOF:-1