2015-05-20 30 views
6

Ho seguito il tutorial di hosting OWIN e ho messo tutto in funzione, ma quando cambio set InstanceCount su -1, sembra che ogni istanza del servizio stia cercando di ascoltare sulla porta 80 nel metodo OpenAync quando chiama WebApp .Inizio.Come si eseguono più istanze di un servizio ospitato OWIN su un cluster di sviluppo?

Supponevo che Service Fabric gestisse le porte in modo dinamico mentre distribuiva servizi per evitare le collisioni tra porte, ma non sembra che stia succedendo.

risposta

8

Un InstanceCount di -1 ha senso solo per i servizi stateless in esecuzione su un cluster multi-macchina. In tal caso, ciascun nodo è in esecuzione sul proprio computer, pertanto non si verificano conflitti di porte e si può configurare il bilanciamento del carico di Azure per il traffico round-robin attraverso le macchine che ospitano tali istanze.

Su un cluster locale, tutti i nodi si trovano sullo stesso computer, quindi se provano a condividere un prefisso HTTP comune, saranno effettivamente in conflitto. Per evitare ciò, imposta InstanceCount per i tuoi servizi stateless a 1 per le distribuzioni locali.

Tutto questo è necessario solo nei casi in cui si desidera comunicare con i servizi utilizzando una porta predefinita. Se non si specifica una porta nel manifest del servizio, la piattaforma ne assegna automaticamente una al momento dell'avvio del servizio. Tuttavia, spetta ai clienti scoprire gli endpoint in modo dinamico utilizzando le API di risoluzione dei nomi della piattaforma, che spesso non sono desiderabili.

Di conseguenza, lo schema comune è di disporre di un front-end senza stato per l'applicazione in ascolto su una porta predefinita, che quindi esegue la risoluzione dei nomi per inoltrare le richieste ad altri servizi. Questi servizi di secondo livello possono essere ascoltati su una porta assegnata dinamicamente dalla piattaforma.

Problemi correlati