Bagikan melalui


Orleans penyedia aliran

Aliran dapat datang dalam bentuk dan bentuk yang berbeda. Beberapa aliran dapat mengirimkan peristiwa melalui tautan TCP langsung, sementara yang lain mengirimkan peristiwa melalui antrean yang tahan lama. Jenis aliran yang berbeda dapat menggunakan strategi batching yang berbeda, algoritma penembolokan yang berbeda, atau prosedur backpressure yang berbeda. Untuk menghindari pembatasan aplikasi streaming hanya untuk subset pilihan perilaku tersebut, penyedia aliran adalah titik ekstensibilitas ke Orleans Streaming Runtime yang memungkinkan pengguna untuk menerapkan semua jenis aliran. Titik ekstensibilitas ini mirip dengan Orleans penyedia Penyimpanan.

Penyedia streaming Azure Event Hub

Azure Event Hub adalah layanan penyerapan data real-time yang dikelola sepenuhnya yang mampu menerima dan memproses jutaan peristiwa per detik. Ini dirancang untuk menangani penyerapan data dengan throughput tinggi dan latensi rendah dari beberapa sumber dan pemrosesan data tersebut berikutnya oleh beberapa konsumen.

Azure Event Hubs sering digunakan sebagai fondasi arsitektur pemrosesan peristiwa yang lebih besar, di mana ia berfungsi sebagai "pintu depan" untuk alur peristiwa. Ini dapat digunakan untuk menyerap data dari berbagai sumber, termasuk umpan media sosial, perangkat IoT, dan file log. Salah satu manfaat utama Event Hubs adalah kemampuan untuk menskalakan secara horizontal untuk memenuhi kebutuhan bahkan beban kerja pemrosesan peristiwa terbesar. Ini juga sangat tersedia dan toleran terhadap kesalahan, dengan beberapa replika data didistribusikan di beberapa wilayah Azure untuk memastikan ketersediaan tinggi.

Microsoft .Orleans. Paket Streaming.EventHubs NuGet berisi penyedia streaming Azure Event Hubs.

Penyedia aliran Azure Queue (AQ)

Penyedia aliran Azure Queue (AQ) mengirimkan peristiwa melalui Azure Queues. Di sisi produsen, penyedia aliran AQ mengantrekan peristiwa langsung ke Azure Queue. Di sisi konsumen, penyedia aliran AQ mengelola sekumpulan agen penarikan yang menarik peristiwa dari sekumpulan Azure Queues dan mengirimkannya ke kode aplikasi yang mengonsumsinya. Seseorang dapat menganggap agen penarikan sebagai "layanan mikro" terdistribusi—komponen terdistribusi yang dipartisi, sangat tersedia, dan elastis. Agen penarikan berjalan di dalam silo yang sama yang menghosting biji-bijian aplikasi. Dengan demikian, tidak perlu menjalankan peran pekerja Azure terpisah untuk menarik dari antrean. Keberadaan agen penarikan, manajemen mereka, backpressure, menyeimbangkan antrean di antara mereka, dan menyerahkan antrean dari agen yang gagal ke agen lain dikelola sepenuhnya oleh Orleans Streaming Runtime dan transparan untuk kode aplikasi yang menggunakan aliran.

Microsoft .Orleans. Paket Streaming.AzureStorage NuGet berisi penyedia aliran penyimpanan Azure Queue.

Adaptor antrean

Penyedia streaming berbeda yang memberikan peristiwa melalui antrean tahan lama menunjukkan perilaku serupa dan tunduk pada implementasi serupa. Oleh karena itu, kami menyediakan ekstensibilitas PersistentStreamProvider generik memungkinkan pengembang untuk menyambungkan berbagai jenis antrean tanpa menulis penyedia streaming yang sama sekali baru dari awal. PersistentStreamProviderIQueueAdapter menggunakan komponen, yang mengabstraksi detail implementasi antrean tertentu dan menyediakan sarana untuk mengantre dan menghapus antrean peristiwa. Semua sisanya ditangani oleh logika di PersistentStreamProviderdalam . Penyedia Antrean Azure yang disebutkan di atas juga diimplementasikan dengan cara ini: ini adalah instans PersistentStreamProvider AzureQueueAdapteryang menggunakan .

Penyedia aliran pesan sederhana

Penyedia aliran pesan sederhana, juga dikenal sebagai penyedia SMS, memberikan peristiwa melalui TCP dengan menggunakan pesan biji-bijian reguler Orleans . Karena peristiwa dalam SMS dikirimkan melalui tautan TCP yang tidak dapat diandalkan, SMS tidak menjamin pengiriman peristiwa yang andal dan tidak secara otomatis mengirim ulang pesan yang gagal untuk aliran SMS. Secara default, panggilan produsen untuk OnNextAsync mengembalikan Task yang mewakili status pemrosesan konsumen stream, yang memberi tahu produsen apakah konsumen berhasil menerima dan memproses peristiwa. Jika tugas ini gagal, produsen dapat memutuskan untuk mengirim peristiwa yang sama lagi, sehingga mencapai keandalan pada tingkat aplikasi. Meskipun pengiriman pesan streaming adalah upaya terbaik, aliran SMS itu sendiri dapat diandalkan. Artinya, pengikatan pelanggan ke produsen yang dilakukan oleh Pub-Sub sepenuhnya dapat diandalkan.

Lihat juga

OrleansDetail Implementasi Aliran