Orleans uygulaması
Tipik bir Orleans uygulaması, tanelerin yaşadığı bir sunucu işlemleri kümesinden (silolar) ve dış istekler alan genellikle web sunucuları olmak üzere bir dizi istemci işleminden oluşur ve bunları taneli yöntem çağrılarına dönüştürerek sonuçları döndürür. Bu nedenle, bir Orleans uygulamasını çalıştırmak için yapılması gereken ilk şey bir silo kümesi başlatmaktır. Test amacıyla bir küme tek bir silodan oluşabilir. Güvenilir bir üretim dağıtımı için bir kümede hataya dayanıklılık ve ölçeklendirme için birden fazla silo istiyoruz.
Küme çalıştırıldıktan sonra kümeye bağlanan ve dilimlere istek gönderebilen bir veya daha fazla istemci işlemi başlatabiliriz. İstemciler silolar - ağ geçidi üzerindeki özel bir TCP uç noktasına bağlanır. Varsayılan olarak, kümedeki her siloda bir istemci ağ geçidi etkindir. Böylece istemciler daha iyi performans ve dayanıklılık için tüm silolara paralel olarak bağlanabilir.
Silo yapılandırma ve başlatma
Silo, bir ClusterConfiguration nesne aracılığıyla program aracılığıyla yapılandırılır. Doğrudan örneklenebilir ve doldurulabilir, bir dosyadan ayarları yükleyebilir veya farklı dağıtım ortamları için çeşitli yardımcı yöntemlerle oluşturulabilir. Yerel test için en kolay yol yardımcı yöntemi kullanmaktır LocalhostPrimarySilo . Yapılandırma nesnesi daha sonra sınıfın SiloHost yeni bir örneğine geçirilir ve bu örnekten sonra başlatılabilir.
Silo barındırmak için .NET Framework 4.6.1 veya üzerini hedefleyen boş bir konsol uygulaması projesi oluşturabilirsiniz.
Microsoft.Orleans.Server
NuGet meta paketini projeye ekleyin.
Install-Package Microsoft.Orleans.Server
Aşağıda yerel silonun nasıl başlatılabildiğine bir örnek verilmiştir:
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();
İstemciyi yapılandırma ve istemciye bağlanma
Bir silo kümesine bağlanma ve grains'e istek gönderme istemcisi, bir ClientConfiguration nesnesi ve aracılığıyla ClientBuilderprogram aracılığıyla yapılandırılır. ClientConfiguration
nesnesi doğrudan örneklenebilir ve doldurulabilir, bir dosyadan ayarları yükleyebilir veya farklı dağıtım ortamları için çeşitli yardımcı yöntemlerle oluşturulabilir. Yerel test için en kolay yol yardımcı yöntemi kullanmaktır LocalhostSilo . Yapılandırma nesnesi daha sonra sınıfın ClientBuilder
yeni bir örneğine geçirilir.
ClientBuilder
ek istemci özelliklerini yapılandırmak için daha fazla yöntem sunar. Nesnesinin bu ClientBuilder.Build() yönteminden ClientBuilder
sonra arabiriminin bir uygulamasını almak için çağrılır IClusterClient . Son olarak, kümeye bağlanmak için döndürülen nesnede yöntemini çağırırız IClusterClient.Connect() .
İstemci çalıştırmak için .NET Framework 4.6.1 veya üzerini hedefleyen boş bir konsol uygulaması projesi oluşturabilir veya siloyu barındırmak için oluşturduğunuz konsol uygulaması projesini yeniden kullanabilirsiniz. Microsoft.Orleans.Client
NuGet meta paketini projeye ekleyin.
Install-Package Microsoft.Orleans.Client
İstemcinin yerel siloya nasıl bağlanabileceğini gösteren bir örnek aşağıda verilmiştir:
var config = ClientConfiguration.LocalhostSilo();
var builder = new ClientBuilder().UseConfiguration(config).
var client = builder.Build();
await client.Connect();
Üretim yapılandırmaları
Burada kullandığımız yapılandırma örnekleri, ile aynı makinede çalışan siloları ve istemcileri test etme amaçlıdır localhost
. Üretimde, silolar ve istemciler genellikle farklı sunucularda çalışır ve güvenilir küme yapılandırma seçeneklerinden biriyle yapılandırılır. Yapılandırma kılavuzunda ve Küme yönetiminin açıklamasında bu konuda daha fazla bilgi bulabilirsiniz.