Condividi tramite


Applicazione Orleans

Un'applicazione tipica di Orleans è costituita da un cluster di processi server (silos) in cui i cereali vivono e un set di processi client, in genere server Web, che ricevono richieste esterne, li trasformano in chiamate di metodo granulari e restituiscono risultati. Di conseguenza, la prima cosa da fare per eseguire un'applicazione Orleans consiste nell'avviare un cluster di silos. A scopo di test, un cluster può essere costituito da un singolo silo. Per una distribuzione affidabile di produzione, è necessario più di un silo in un cluster per la tolleranza di errore e la scalabilità.

Una volta eseguito il cluster, è possibile avviare uno o più processi client che si connettono al cluster e possono inviare richieste ai cereali. I client si connettono a un endpoint TCP speciale su silos - gateway. Per impostazione predefinita, ogni silo in un cluster dispone di un gateway client abilitato. I client possono quindi connettersi a tutti i silo in parallelo per migliorare le prestazioni e la resilienza.

Configurare e avviare un silo

Un silo viene configurato a livello di codice tramite un ClusterConfiguration oggetto . Può essere creata un'istanza e popolata direttamente, le impostazioni di caricamento da un file o create con diversi metodi helper disponibili per diversi ambienti di distribuzione. Per i test locali, il modo più semplice per procedere consiste nell'usare LocalhostPrimarySilo il metodo helper. L'oggetto di configurazione viene quindi passato a una nuova istanza di SiloHost classe, che può essere inizializzata e avviata dopo questa operazione.

È possibile creare un progetto di applicazione console vuoto destinato .NET Framework 4.6.1 o versione successiva per ospitare un silo. Aggiungere il Microsoft.Orleans.Server meta-package NuGet al progetto.

Install-Package Microsoft.Orleans.Server

Ecco un esempio di come è possibile avviare un silo locale:

var siloConfig = ClusterConfiguration.LocalhostPrimarySilo();
var silo = new SiloHost("Test Silo", siloConfig);
silo.InitializeOrleansSilo();
silo.StartOrleansSilo();

Console.WriteLine("Press Enter to close.");
// wait here
Console.ReadLine();

// shut the silo down after we are done.
silo.ShutdownOrleansSilo();

Configurare e connettersi a un client

Il client per la connessione a un cluster di silos e l'invio di richieste ai cereali viene configurato a livello di codice tramite un ClientConfiguration oggetto e un ClientBuilderoggetto . ClientConfiguration è possibile creare un'istanza e popolare direttamente, caricare le impostazioni da un file o creare con diversi metodi helper disponibili per diversi ambienti di distribuzione. Per i test locali, il modo più semplice per procedere consiste nell'usare LocalhostSilo il metodo helper. L'oggetto di configurazione viene quindi passato a una nuova istanza della ClientBuilder classe.

ClientBuilder espone altri metodi per la configurazione di funzionalità client aggiuntive. Dopo che ClientBuilder.Build() tale metodo dell'oggetto viene chiamato per ottenere un'implementazione dell'interfaccia ClientBuilderIClusterClient . Infine, viene chiamato IClusterClient.Connect() il metodo sull'oggetto restituito per connettersi al cluster.

È possibile creare un progetto di applicazione console vuoto destinato .NET Framework 4.6.1 o versione successiva per eseguire un client o riutilizzare il progetto dell'applicazione console creato per ospitare un silo. Aggiungere il Microsoft.Orleans.Client meta-package NuGet al progetto.

Install-Package Microsoft.Orleans.Client

Ecco un esempio di come un client può connettersi a un silo locale:

var config = ClientConfiguration.LocalhostSilo();
var builder = new ClientBuilder().UseConfiguration(config).
var client = builder.Build();
await client.Connect();

Configurazioni di produzione

Gli esempi di configurazione usati qui sono per testare i silos e i client in esecuzione nello stesso computer di localhost. In produzione, i silos e i client vengono in genere eseguiti in server diversi e sono configurati con una delle opzioni di configurazione del cluster affidabile. Altre informazioni sono disponibili nella Guida alla configurazione e nella descrizione della gestione del cluster.

Passaggi successivi