WCF Keep Alive: se disabilitare keepAliveEnabled

2

Dispongo di un servizio Web WCF ospitato in un ambiente con bilanciamento del carico. Non ho bisogno di alcuna funzionalità relativa alla sessione WCF nel servizio.

QUESTION

Quali sono gli scenari in cui le prestazioni saranno migliori se

  1. keepAliveEnabled = false

  2. keepAliveEnabled = true

Riferimento

Da Load Balancing

By default, the BasicHttpBinding sends a connection HTTP header in messages with a Keep-Alive value, which enables clients to establish persistent connections to the services that support them. This configuration offers enhanced throughput because previously established connections can be reused to send subsequent messages to the same server. However, connection reuse may cause clients to become strongly associated to a specific server within the load-balanced farm, which reduces the effectiveness of round-robin load balancing. If this behavior is undesirable, HTTP Keep-Alive can be disabled on the server using the KeepAliveEnabled property with a CustomBinding or user-defined Binding.

    
posta Lijo 15.03.2013 - 15:27
fonte

2 risposte

2

Perché hai chiesto informazioni sul rendimento:

keepAliveEnabled = false

Per le migliori prestazioni, se la tua latenza media è bassa, usa questo (anche se probabilmente non farà una grande differenza).

keepAliveEnabled = true

Per le migliori prestazioni, se la tua latenza media è alta, usa questo.

    
risposta data 14.06.2013 - 01:54
fonte
0

Keep-Alive dice al client che può mantenere la connessione TCP il traffico HTTP scorre su aperto, piuttosto che aprirlo e chiuderlo per trasporto.

Se ti trovi in un ambiente con bilanciamento del carico non sarai in grado di avere sessioni / connessioni "appiccicose" in modo affidabile con un server particolare. La possibilità è che su ogni trasporto il messaggio colpirà un server diverso nell'ambiente.

Mantenere Keep-Alive significa che manterrai una connessione con ogni server colpito dal client. In uno scenario a bassa latenza a larghezza di banda elevata non è necessario in quanto il sovraccarico per una nuova connessione è trascurabile.

* Non è tanto legato alle sessioni quanto quelle gestite in modo diverso (cookie sul client, un archivio centralizzato nel cluster di server)

    
risposta data 15.03.2013 - 21:16
fonte

Leggi altre domande sui tag