Pelatihan
Modul
Pengantar untuk Orleans - Training
Pelajari apa itu kerangka kerja Orleans, manfaat yang dapat diberikannya, serta cara mengintegrasikannya dengan aplikasi Anda.
Browser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
Orleans v.1.0.0 menambahkan dukungan untuk ekstensi streaming ke model pemrograman. Ekstensi streaming menyediakan serangkaian abstraksi dan API yang membuat berpikir dan bekerja dengan aliran lebih sederhana dan lebih kuat. Ekstensi streaming memungkinkan pengembang menulis aplikasi reaktif yang beroperasi pada urutan peristiwa secara terstruktur. Model ekstensibilitas penyedia streaming membuat model pemrograman kompatibel dengan dan portabel di berbagai teknologi antrean yang ada, seperti Event Hubs, ServiceBus, Azure Queues, dan Apache Kafka. Tidak perlu menulis kode khusus atau menjalankan proses khusus untuk berinteraksi dengan antrean tersebut.
Jika Anda sudah tahu semua tentang Pemrosesan Aliran dan terbiasa dengan teknologi seperti Event Hubs, Kafka, Azure Stream Analytics, Apache Storm, Apache Spark Streaming, dan Reactive Extensions (Rx) di .NET, Anda mungkin bertanya mengapa Anda harus peduli. Mengapa kita membutuhkan Sistem Pemrosesan Aliran lain dan bagaimana Actor terkait dengan Aliran?"Mengapa Orleans Aliran?" dimaksudkan untuk menjawab pertanyaan itu.
Ada beberapa prinsip di balik Orleans Aliran Model Pemrograman:
Aplikasi berinteraksi dengan aliran dengan menggunakan Orleans.Streams.IAsyncStream<T>, yang mengimplementasikan Orleans.Streams.IAsyncObserver<T> antarmuka dan Orleans.Streams.IAsyncObservable<T> . APIS ini mirip dengan Reactive Extensions (Rx) yang terkenal di .NET.
Dalam contoh umum di bawah ini, perangkat menghasilkan beberapa data, yang dikirim sebagai permintaan HTTP ke layanan yang berjalan di Cloud. Klien Orleans yang berjalan di server front-end menerima panggilan HTTP ini dan menerbitkan data ke dalam aliran perangkat yang cocok:
public async Task OnHttpCall(DeviceEvent deviceEvent)
{
// Post data directly into the device's stream.
IStreamProvider streamProvider =
GrainClient.GetStreamProvider("MyStreamProvider");
IAsyncStream<DeviceEventData> deviceStream =
streamProvider.GetStream<DeviceEventData>(
deviceEvent.DeviceId, "MyNamespace");
await deviceStream.OnNextAsync(deviceEvent.Data);
}
Dalam contoh lain di bawah ini, pengguna obrolan (diimplementasikan sebagai Orleans Grain) bergabung dengan ruang obrolan, mendapatkan pegangan ke aliran pesan obrolan yang dihasilkan oleh semua pengguna lain di ruangan ini, dan berlangganannya. Perhatikan bahwa pengguna obrolan tidak perlu tahu tentang butir ruang obrolan itu sendiri (mungkin tidak ada biji-bijian seperti itu dalam sistem kami) atau tentang pengguna lain dalam grup yang menghasilkan pesan. Tidak perlu dikatakan, untuk menerbitkan ke aliran obrolan, pengguna tidak perlu tahu siapa yang saat ini berlangganan aliran. Ini menunjukkan bagaimana pengguna obrolan dapat sepenuhnya dipisahkan dalam waktu dan ruang.
public class ChatUser: Grain
{
public async Task JoinChat(Guid chatGroupId)
{
IStreamProvider streamProvider =
base.GetStreamProvider("MyStreamProvider");
IAsyncStream<string> chatStream =
streamProvider.GetStream<string>(chatGroupId, "MyNamespace");
await chatStream.SubscribeAsync(
async (message, token) => Console.WriteLine(message))
}
}
Sampel Mulai Cepat adalah gambaran umum singkat yang baik tentang alur kerja keseluruhan penggunaan aliran dalam aplikasi. Setelah membacanya, Anda harus membaca API Pemrograman Aliran untuk mendapatkan pemahaman yang lebih mendalam tentang konsep.
API pemrograman Aliran memberikan deskripsi terperinci tentang API pemrograman.
Aliran dapat datang melalui saluran fisik dari berbagai bentuk dan bentuk dan dapat memiliki semantik yang berbeda. Orleans Streaming dirancang untuk mendukung keragaman ini melalui konsep Stream Providers, yang merupakan titik ekstensibilitas dalam sistem. Orleans saat ini memiliki implementasi penyedia dua aliran: Penyedia Aliran Pesan Sederhana berbasis TCP dan Azure Queue Stream Provider berbasis Azure Queue. Detail selengkapnya tentang Penyedia Stream dapat ditemukan di Penyedia Stream.
Semantik Langganan Stream:
Orleans Aliran menjamin Konsistensi Berurutan untuk operasi Langganan Stream. Secara khusus, ketika konsumen berlangganan aliran, setelah Task
mewakili operasi langganan berhasil diselesaikan, konsumen akan melihat semua peristiwa yang dihasilkan setelah berlangganan. Selain itu, aliran Rewindable memungkinkan Anda untuk berlangganan dari titik waktu arbitrer di masa lalu dengan menggunakan StreamSequenceToken. Untuk informasi selengkapnya, lihat Penyedia streaming Orleans.
Jaminan Pengiriman Peristiwa Stream Individu:
Jaminan pengiriman peristiwa individual bergantung pada penyedia aliran individual. Beberapa hanya menyediakan pengiriman paling banyak sekali (seperti Aliran Pesan Sederhana (SMS)), sementara yang lain menyediakan pengiriman setidaknya sekali (seperti Azure Queue Aliran). Bahkan dimungkinkan untuk membangun penyedia streaming yang akan menjamin pengiriman tepat sekali (kami belum memiliki penyedia seperti itu, tetapi dimungkinkan untuk membuatnya).
Pesanan Pengiriman Peristiwa:
Urutan peristiwa juga bergantung pada penyedia streaming tertentu. Dalam aliran SMS, produsen secara eksplisit mengontrol urutan peristiwa yang dilihat oleh konsumen dengan mengontrol cara menerbitkannya. Aliran Azure Queue tidak menjamin pesanan FIFO, karena Azure Queues yang mendasar tidak menjamin urutan dalam kasus kegagalan. Aplikasi juga dapat mengontrol pemesanan pengiriman aliran mereka dengan menggunakan StreamSequenceToken
.
Implementasi orleans Aliran memberikan gambaran umum tingkat tinggi tentang implementasi internal.
Contoh lebih lanjut tentang cara menggunakan API streaming dalam butir dapat ditemukan di sini. Kami berencana untuk membuat lebih banyak sampel di masa mendatang.
Pelatihan
Modul
Pengantar untuk Orleans - Training
Pelajari apa itu kerangka kerja Orleans, manfaat yang dapat diberikannya, serta cara mengintegrasikannya dengan aplikasi Anda.