Utilizzo il bus di servizio con nettcprelaybinding. Un lato è il server OnPremise che ha una connessione costante al bus di servizio. Dall'altra parte c'è un ruolo Web di Azure che risponde alle richieste Web in ingresso aprendo il bus di servizio appropriato e recuperando le informazioni dal server.Prestazioni del relè di servizio Azure
La mia preoccupazione è la performance della creazione del canale. Occorrono un paio di secondi per stabilire una nuova connessione al server onpremise tramite il bus di servizio. Caching my ChannelFactory non sembra aiutare molto. Le prestazioni di trasferimento dopo l'apertura del canale sono molto buone.
Qualsiasi suggerimento su come migliorare le prestazioni. Le informazioni di memorizzazione nella cache in Azure possono essere eseguite solo in una certa misura. Devo connettermi al server onpremise.
Posso in qualche modo stabilire un pool di connessioni al bus di servizio?
Su più cose, ci sono diversi server onpremise diversi quindi non è solo una connessione da mantenere in vita.
Grazie per il buon feedback. Non sapevo del limite di 60 secondi. Se voglio mettere in comune le connessioni. Qual è un buon modo per farlo? Ho trovato alcune informazioni su di esso seguendo il tuo link (http://code.msdn.microsoft.com/WCF-Azure-NetTCP-Keep-Alive-09f50fd9). Ma questa è la soluzione migliore in un ambiente Azure a più istanze? Se un canale è aperto su un'istanza e il prossimo client viene eseguito su un'istanza diversa? O il bilanciamento del carico si assicura che venga utilizzata la stessa istanza? – user1284390
A quanto ho capito, ogni istanza ottiene la propria connessione. E dal momento che li tengono aperti, è necessario essere consapevoli dei limiti di connessione massimi (2000 o alcuni di questi credo) che sono consentiti su un singolo spazio dei nomi. Se ciò che è buono o cattivo farlo dipende dalle tue esigenze di prestazioni e scalabilità. – BrentDaCodeMonkey
Questo è un po 'vecchio - ma solo FYI, sembra che la maggior parte dei LB di Azure siano ora basati su software e abbiano un timeout predefinito di 4 minuti (non 1 minuto con i precedenti LB basati su hardware) - e ora è configurabile. Tuttavia, non è chiaro per me, in questo momento, se la libreria client del bus di servizio sta implementando automaticamente TCP KeepAlive, e quindi un timeout LB non è davvero un problema: https://azure.microsoft.com/en-us/blog/new-configurable-idle-timeout-for-azure-load-balancer/ – Jmoney38