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:
Orleans didasarkan pada "model aktor". Model aktor berasal pada awal 1970-an dan sekarang menjadi komponen inti dari Orleans. Model aktor adalah model pemrograman di mana setiap aktor adalah objek ringan, bersamaan, tidak dapat diubah yang merangkum sepotong status dan perilaku yang sesuai. Aktor berkomunikasi secara eksklusif satu sama lain menggunakan pesan asinkron. Orleans terutama menciptakan abstraksi Aktor Virtual, di mana aktor ada secara abadi.
Catatan
Aktor adalah entitas murni logis yang selalu ada, secara virtual. Aktor tidak dapat dibuat atau dihancurkan secara eksplisit, dan keberadaan virtualnya tidak terpengaruh oleh kegagalan server yang menjalankannya. Karena aktor selalu ada, mereka selalu dapat diatasi.
Ini adalah pendekatan baru untuk membangun generasi baru aplikasi terdistribusi untuk era Cloud. Model Orleans pemrograman menjinakkan kompleksitas yang melekat pada aplikasi terdistribusi yang sangat paralel tanpa membatasi kemampuan atau memberlakukan batasan pada pengembang.
Untuk informasi selengkapnya, lihat Orleans: Aktor Virtual melalui Microsoft Research. Aktor virtual direpresentasikan sebagai Orleans biji-bijian.
Biji-bijian adalah salah satu dari beberapa Orleans primitif. Dalam hal model aktor, biji-bijian adalah aktor virtual. Blok penyusun mendasar dalam aplikasi apa pun Orleans adalah biji-bijian. Butir adalah entitas yang terdiri dari identitas, perilaku, dan status yang ditentukan pengguna. Pertimbangkan representasi visual butir berikut:
Identitas butir adalah kunci yang ditentukan pengguna yang membuat biji-bijian selalu tersedia untuk pemanggilan. Biji-bijian dapat dipanggil oleh biji-bijian lain atau oleh sejumlah klien eksternal. Setiap butir adalah instans kelas yang mengimplementasikan satu atau beberapa antarmuka berikut:
Guid
kunci.Int64
kunci.string
kunci.Biji-bijian dapat memiliki data status volatil atau persisten yang dapat disimpan dalam sistem penyimpanan apa pun. Dengan demikian, butiran secara implisit mempartisi status aplikasi, memungkinkan skalabilitas otomatis dan menyederhanakan pemulihan dari kegagalan. Status biji-bijian disimpan dalam memori saat biji-bijian aktif, yang mengarah ke latensi yang lebih rendah dan lebih sedikit beban pada penyimpanan data.
Instansiasi biji-bijian secara otomatis dilakukan sesuai permintaan oleh Orleans runtime. Butir yang tidak digunakan untuk sementara waktu secara otomatis dihapus dari memori untuk mengosongkan sumber daya. Ini dimungkinkan karena identitas stabil mereka, yang memungkinkan pemanggilan biji-bijian apakah sudah dimuat ke dalam memori atau tidak. Ini juga memungkinkan pemulihan transparan dari kegagalan karena pemanggil tidak perlu tahu di server mana butir dibuat kapan saja. Biji-bijian memiliki siklus hidup terkelola, dengan Orleans runtime yang bertanggung jawab untuk mengaktifkan/menonaktifkan, dan menempatkan/menemukan biji-bijian sesuai kebutuhan. Ini memungkinkan pengembang untuk menulis kode seolah-olah semua biji-bijian selalu dalam memori.
Silo adalah contoh lain dari Orleans primitif. Silo menghosting satu atau beberapa biji-bijian. Orleans Runtime adalah apa yang mengimplementasikan model pemrograman untuk aplikasi.
Biasanya, sekelompok silo berjalan sebagai kluster untuk skalabilitas dan toleransi kesalahan. Saat dijalankan sebagai kluster, silo berkoordinasi satu sama lain untuk mendistribusikan pekerjaan dan mendeteksi dan memulihkan dari kegagalan. Runtime memungkinkan biji-bijian yang dihosting dalam kluster untuk berkomunikasi satu sama lain seolah-olah mereka berada dalam satu proses. Untuk membantu memvisualisasikan hubungan antara kluster, silo, dan biji-bijian, pertimbangkan diagram berikut:
Diagram sebelumnya menunjukkan hubungan antara kluster, silo, dan biji-bijian. Anda dapat memiliki sejumlah kluster, setiap kluster memiliki satu atau beberapa silo, dan setiap silo memiliki satu atau beberapa butir.
Selain model pemrograman inti, silo menyediakan biji-bijian dengan serangkaian layanan runtime seperti timer, pengingat (timer persisten), persistensi, transaksi, aliran, dan banyak lagi. Untuk informasi selengkapnya, lihat Apa yang bisa saya lakukan dengan Orleans?
Aplikasi web dan klien eksternal lainnya memanggil biji-bijian di kluster menggunakan pustaka klien, yang secara otomatis mengelola komunikasi jaringan. Klien juga dapat dihosting bersama dalam proses yang sama dengan silo untuk kesederhanaan.
Orleans adalah kerangka kerja untuk membangun aplikasi cloud-native dan harus dipertimbangkan setiap kali Anda membangun aplikasi .NET yang pada akhirnya perlu diskalakan. Tampaknya ada cara yang tidak ada habisnya untuk menggunakan Orleans, tetapi berikut ini adalah beberapa cara yang paling umum; Game, Perbankan, Aplikasi obrolan, pelacakan GPS, Trading saham, Kelir belanja, Aplikasi voting, dan banyak lagi. Orleans digunakan oleh Microsoft di Azure, Xbox, Skype, Halo, PlayFab, Gears of War, dan banyak layanan internal lainnya. Orleans memiliki banyak fitur yang memudahkan penggunaan untuk berbagai aplikasi.
Orleans menyediakan model persistensi sederhana yang memastikan status tersedia sebelum memproses permintaan, dan konsistensinya dipertahankan. Biji-bijian dapat memiliki beberapa objek data persisten bernama. Misalnya, mungkin ada satu yang disebut "profil" untuk profil pengguna dan yang disebut "inventory" untuk inventori mereka. Status ini dapat disimpan dalam sistem penyimpanan apa pun.
Saat biji-bijian berjalan, status disimpan dalam memori sehingga permintaan baca dapat dilayani tanpa mengakses penyimpanan. Ketika butir memperbarui statusnya, panggilan IStorage.WriteStateAsync memastikan bahwa penyimpanan backing diperbarui untuk durabilitas dan konsistensi.
Untuk informasi selengkapnya, lihat Persistensi butir.
Pengingat adalah mekanisme penjadwalan yang tahan lama untuk butiran. Mereka dapat digunakan untuk memastikan bahwa beberapa tindakan selesai pada titik mendatang meskipun butiran saat ini tidak diaktifkan pada saat itu. Timer adalah mitra pengingat yang tidak tahan lama dan dapat digunakan untuk peristiwa frekuensi tinggi, yang tidak memerlukan keandalan.
Untuk informasi selengkapnya, lihat Timer dan pengingat.
Ketika biji-bijian diaktifkan di Orleans, runtime memutuskan server mana (silo) untuk mengaktifkan biji-bijian itu. Ini disebut penempatan biji-bijian.
Proses penempatan di sepenuhnya dapat dikonfigurasi Orleans . Pengembang dapat memilih dari serangkaian kebijakan penempatan di luar kotak seperti logika acak, lokal, dan berbasis beban, atau kustom dapat dikonfigurasi. Ini memungkinkan fleksibilitas penuh dalam memutuskan di mana butir dibuat. Misalnya, biji-bijian dapat ditempatkan di server yang dekat dengan sumber daya yang perlu mereka operasikan terhadap atau biji-bijian lain yang berkomunikasi dengan mereka.
Untuk informasi selengkapnya, lihat Penempatan grain.
Meningkatkan sistem produksi dengan cara yang aman memperkirakan perubahan dapat menjadi tantangan, terutama dalam sistem stateful. Untuk memperhitungkan hal ini, antarmuka biji-bijian di dapat diberi Orleans versi.
Kluster mempertahankan pemetaan implementasi biji-bijian mana yang tersedia di mana silo dalam kluster dan versi implementasi tersebut. Versi informasi ini digunakan oleh runtime bersama dengan strategi penempatan untuk membuat keputusan penempatan saat merutekan panggilan ke biji-bijian. Selain itu, untuk memperbarui biji-bijian versi dengan aman, ini juga memungkinkan kluster heterogen, di mana silo yang berbeda memiliki set implementasi biji-bijian yang berbeda yang tersedia.
Untuk informasi selengkapnya, lihat Penerapan Versi Grain.
Pekerja tanpa status adalah biji-bijian yang ditandai secara khusus yang tidak memiliki status terkait dan dapat diaktifkan pada beberapa silo secara bersamaan. Ini memungkinkan peningkatan paralelisme untuk fungsi stateless.
Untuk informasi selengkapnya, lihat biji-bijian pekerja tanpa status.
Filter panggilan biji-bijian adalah logika yang umum untuk banyak biji-bijian. Orleans mendukung filter untuk panggilan masuk dan keluar. Filter untuk otorisasi, pengelogan dan telemetri, dan penanganan kesalahan semuanya dianggap umum.
Metadata dan informasi lainnya dapat diteruskan dengan serangkaian permintaan menggunakan konteks permintaan. Konteks permintaan dapat digunakan untuk menyimpan informasi pelacakan terdistribusi atau nilai lain yang ditentukan pengguna.
Selain model persistensi sederhana yang dijelaskan di atas, biji-bijian dapat memiliki status transaksi. Beberapa biji-bijian dapat berpartisipasi dalam transaksi ACID bersama-sama terlepas dari di mana keadaan mereka pada akhirnya disimpan. Transaksi dalam didistribusikan dan didesentralisasi (tidak ada manajer transaksi pusat atau koordinator transaksi) dan memiliki isolasi yang dapat diserialisasikanOrleans.
Untuk informasi selengkapnya tentang transaksi, lihat Transaksi.
Aliran membantu pengembang memproses serangkaian item data mendekati real-time. Orleansaliran dikelola; aliran tidak perlu dibuat atau didaftarkan sebelum grain atau klien diterbitkan, atau berlangganan aliran. Ini memungkinkan pemisahan produsen aliran dan konsumen yang lebih besar dari satu sama lain dan infrastruktur.
Pemrosesan aliran dapat diandalkan: biji-bijian dapat menyimpan titik pemeriksaan (kursor) dan mengatur ulang ke titik pemeriksaan yang disimpan selama aktivasi atau pada waktu berikutnya. Aliran mendukung pengiriman batch pesan kepada konsumen untuk meningkatkan efisiensi dan performa pemulihan.
Aliran didukung oleh layanan antrean seperti Azure Event Hubs, Amazon Kinesis, dan lainnya.
Jumlah aliran arbitrer dapat dikalikan ke sejumlah kecil antrean dan tanggung jawab untuk memproses antrean ini seimbang secara merata di seluruh kluster.
Jika Anda tertarik dengan pengantar Orleansvideo , lihat video berikut:
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik:
Pelatihan
Modul
Pengantar untuk Orleans - Training
Pelajari apa itu kerangka kerja Orleans, manfaat yang dapat diberikannya, serta cara mengintegrasikannya dengan aplikasi Anda.
Dokumentasi
Sampel, tutorial, dan pendidikan untuk .NET Orleans. Platform sistem asli dan terdistribusi cloud Microsoft.
Pelajari banyak manfaat .NET Orleans.
Mulai cepat: Membangun aplikasi pertama Orleans Anda dengan ASP.NET Core - .NET
Pelajari cara menggunakan Orleans untuk membangun aplikasi ASP.NET Core yang dapat diskalakan dan didistribusikan