TcpNetServerConnectionFactory

TcpNetServerConnectionFactory

我目前正在使用Spring集成在tcp套接字服务器上工作。
到目前为止,我有以下提到的代码。
但是有可能对该套接字服务器的多个节点进行负载平衡。为此,我需要套接字连接上下文的stick session,可以在节点之间共享。谁能建议可能的解决方案?

@Bean
    public IntegrationFlow listnerServerFlow(
            TcpNetServerConnectionFactory serverConnectionFactory,
            DeviceListenerService deviceListenerService) {
        return IntegrationFlows
                .from(Tcp.inboundGateway(serverConnectionFactory))
                .handle(deviceListenerService::processRequest)
                .get();
    }

@Bean
    public TcpNetServerConnectionFactory serverConnectionFactory() {
        TcpNetServerConnectionFactory connectionFactory = new TcpNetServerConnectionFactory(2424);
        connectionFactory.setSerializer(new ByteArrayCrLfSerializer());
        connectionFactory.setDeserializer(new ByteArrayCrLfSerializer());
        connectionFactory.setSingleUse(false);
        connectionFactory.setSoKeepAlive(true);
        return connectionFactory;
    }

最佳答案

有了这个设定

connectionFactory.setSingleUse(false);


只有一个共享连接,因此它始终是粘性的(连接到一台服务器)。

您可以使用ThreadAffinityConnectionFactory将连接绑定到每个调用线程。

10-04 23:00