Bagikan melalui


Streaming dengan Orleans

Orleans streaming adalah fitur Orleans kerangka kerja yang memungkinkan pengembang menulis aplikasi reaktif yang beroperasi pada urutan peristiwa secara terstruktur. Orleans streaming menyediakan serangkaian abstraksi dan API yang membuat berpikir tentang dan bekerja dengan aliran lebih sederhana dan lebih kuat. Aliran adalah entitas logis yang selalu ada dan tidak pernah dapat gagal. Aliran diidentifikasi oleh StreamId. Aliran memungkinkan pembuatan data dipisahkan dari pemrosesannya, baik dalam waktu maupun ruang. Aliran bekerja secara seragam di seluruh unit dan Orleans klien, dan dapat kompatibel dengan dan portabel pada berbagai teknologi antrean yang ada, seperti Event Hubs, ServiceBus, Azure Queues, dan Apache Kafka. Orleans streaming juga mendukung pengikatan aliran dinamis, manajemen siklus hidup konsumsi aliran transparan, dan penyedia aliran yang dapat diperluas.

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 stream lebih sederhana dan lebih andal. Ekstensi streaming memungkinkan pengembang menulis aplikasi reaktif yang beroperasi pada urutan peristiwa secara terstruktur. Model ekstensibilitas penyedia aliran 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.

Mengapa saya harus peduli?

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 Aktor terkait dengan Stream?"Mengapa Orleans Aliran?" dimaksudkan untuk menjawab pertanyaan itu.

Model pemrograman

Ada beberapa prinsip di balik Orleans Model Pemrograman Streams:

  1. Orleans stream bersifat virtual. Artinya, aliran selalu ada. Ini tidak dibuat atau dihancurkan secara eksplisit, dan tidak pernah bisa gagal.
  2. Aliran diidentifikasi oleh ID aliran, yang hanyalah nama logis yang terdiri dari GUID dan string.
  3. Orleans Aliran memungkinkan Anda memisahkan pembuatan data dari pemrosesannya, baik dalam waktu maupun ruang. Itu berarti bahwa produsen aliran dan konsumen aliran mungkin berada di server yang berbeda atau di zona waktu yang berbeda, dan dapat bertahan dari kegagalan.
  4. Orleans stream ringan dan dinamis. Orleans Streaming Runtime dirancang untuk menangani sejumlah besar aliran yang datang dan pergi pada laju yang cepat.
  5. Orleans pengikatan aliran bersifat dinamis. Orleans Streaming Runtime dirancang untuk menangani kasus di mana biji-bijian terhubung dan memutuskan sambungan dari aliran pada tingkat tinggi.
  6. Orleans Streaming Runtime secara transparan mengelola siklus hidup konsumsi aliran. Setelah aplikasi berlangganan stream, aplikasi kemudian akan menerima acara dari stream tersebut, bahkan jika ada kendala.
  7. Orleans aliran beroperasi secara seragam di seluruh butiran data dan Orleans klien.

Sampel mulai cepat

Sampel Mulai Cepat adalah gambaran umum cepat yang baik tentang alur kerja keseluruhan penggunaan aliran dalam aplikasi. Setelah membacanya, Anda harus membaca API Pemrograman Streams untuk mendapatkan pemahaman yang lebih mendalam tentang konsep.

Penyedia stream

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 Penyedia Aliran, yang merupakan titik ekstensibilitas dalam sistem.

Orleans menyediakan beberapa implementasi penyedia aliran:

Orleans saat ini mencakup beberapa implementasi penyedia:

  • Simple Message (SMS), yang menggunakan panggilan biji-bijian langsung dan tidak ada sistem penyimpanan cadangan,
  • Azure Queues, yang menggunakan Azure Storage Queues untuk menyimpan pesan, dan
  • Azure EventHubs, yang menggunakan Azure EventHubs

Untuk informasi selengkapnya, lihat Penyedia Aliran.

Semantik aliran

Semantik Langganan Stream:

Orleans Stream menjamin Konsistensi Berurutan untuk operasi Langganan Stream. Secara khusus, ketika konsumen berlangganan pada sebuah aliran, setelah Task yang mewakili operasi langganan berhasil diselesaikan, konsumen akan melihat semua peristiwa yang dihasilkan setelah ia berlangganan. Selain itu, Rewindable stream memungkinkan Anda untuk berlangganan mulai dari titik waktu yang dipilih secara arbitrer di masa lalu dengan menggunakan StreamSequenceToken. Untuk informasi selengkapnya, lihat Orleans penyedia streaming.

Jaminan Pengiriman Event Stream Individu

Jaminan penyampaian acara individual bergantung pada penyedia streaming individu. Beberapa sistem hanya menyediakan pengiriman berkualitas terbaik dengan frekuensi maksimal sekali (seperti Simple Message Streams (SMS) dalam versi Orleans sebelum 7.0, yang kemudian dikenal sebagai Saluran Siaran), sementara yang lain menawarkan pengiriman setidaknya sekali (seperti Azure Queue Streams). Bahkan dimungkinkan untuk membangun layanan streaming yang akan menjamin pengiriman sekali saja.

Order Pengiriman Acara:

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. Antrean Azure Queue tidak menjamin urutan FIFO, karena antrean dasar Azure tidak menjamin urutan dalam situasi kegagalan. Aplikasi juga dapat mengontrol urutan pengiriman aliran mereka dengan menggunakan StreamSequenceToken.

Implementasi stream

Orleans Streams Implementation memberikan gambaran umum tingkat tinggi tentang implementasi internal.

Sampel kode

Anda dapat menemukan lebih banyak contoh cara menggunakan API streaming dalam butir di SampleStreamingGrain.cs.

Lihat juga