2016-10-05 5 views
1

Im Frühjahr Integration verwende ich ein paar Kanaladapter zum Senden/Empfangen von Nachrichten von einem Server-Socket. Ich erzeuge immer Client-Verbindungen mit den folgenden Adaptern:TcpSendingMessageHandler mit TcpReceivingChannelAdapter Zusammenarbeit

@Bean 
public TcpReceivingChannelAdapter tcpIn(AbstractClientConnectionFactory connectionFactory) throws Exception { 
    TcpReceivingChannelAdapter receiver = new TcpReceivingChannelAdapter(); 
    receiver.setOutputChannel(fromTcp()); 
    receiver.setConnectionFactory(connectionFactory); 
    return receiver; 
} 

@Bean 
@ServiceActivator(inputChannel = "toTcp") 
public TcpSendingMessageHandler tcpOut(AbstractClientConnectionFactory connectionFactory) throws Exception { 
    TcpSendingMessageHandler sender = new TcpSendingMessageHandler(); 
    sender.setConnectionFactory(connectionFactory); 
    sender.setClientMode(true); 
    return sender; 
} 

Das Problem hier ist der Server in der gleichen Buchse an den Remote-Port (mein geöffneten Socket-Port) zu beantworten. Beispiel: Wenn ich einen Socket an 127.0.0.1:4444 anschließe, antwortet der Server meinem geöffneten Port (dynamisch mit Socket tcp) 6873 statt 4444. Er verwendet denselben Socket.

könnte eine schnelle Antwort sein, ein TcpOutboundGateway zu verwenden, aber ich habe ein paar Probleme mit diesem Szenario:

  • ich ohne Berücksichtigung der Verbindungsereignisse verwalten müssen/ Sendeoperationen lesen. Zum Beispiel muss ich den Socket automatisch verbinden und öffnen, bevor ich irgendeine Nachricht sende.
  • Gemäß der Dokumentation:

für hochvolumige Nachrichten, sollten Sie einen kollaborierenden Paar Channel-Adapter verwenden. Sie müssen jedoch eine Kollaboration Logik bereitstellen.

Welche Komponente sollte ich für Anforderungs-/Antwort-Sockets in einem Massenszenario verwenden?

Antwort

0

Lesen Sie die Reference Manual aus den Worten:

hochvolumigen Durchsatz zu erreichen (die Gefahren der Verwendung von Gateways vermieden wird, wie oben erwähnt) Sie betrachten kann ein Paar zusammen Outbound- und Inbound-Channel-Adapter zu konfigurieren.

Werfen Sie auch einen Blick in TCP Multiplex Sample:

Dieses Beispiel zeigt, wie Channel-Adapter konfigurieren, die Zusammenarbeit, sowohl auf der Client- und Serverseite, und eine Technik für die Antworten auf die entsprechende Anforderung Korrelieren .

Verwandte Themen