Pola sumber acara - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pola sumber acara

Pola sumber acara biasanya digunakan Pola CQRS untuk memisahkan beban kerja baca dari penulisan, dan mengoptimalkan kinerja, skalabilitas, dan keamanan. Data disimpan sebagai serangkaian peristiwa, bukan pembaruan langsung ke penyimpanan data. Microservices memutar ulang peristiwa dari toko acara untuk menghitung status yang sesuai dari penyimpanan data mereka sendiri. Pola ini memberikan visibilitas untuk keadaan aplikasi saat ini dan konteks tambahan untuk bagaimana aplikasi sampai pada keadaan itu. Pola sumber acara bekerja secara efektif dengan pola CQRS karena data dapat direproduksi untuk acara tertentu, bahkan jika penyimpanan data perintah dan kueri memiliki skema yang berbeda.

Dengan memilih pola ini, Anda dapat mengidentifikasi dan merekonstruksi status aplikasi untuk setiap titik waktu. Ini menghasilkan jejak audit yang persisten dan membuat debugging lebih mudah. Namun, data pada akhirnya menjadi konsisten dan ini mungkin tidak sesuai untuk beberapa kasus penggunaan.

Pola ini dapat diimplementasikan dengan menggunakan Amazon Kinesis Data Streams EventBridge atau Amazon.

Implementasi Amazon Kinesis Data Streams

Dalam ilustrasi berikut, Kinesis Data Streams adalah komponen utama dari toko acara terpusat. Toko acara menangkap perubahan aplikasi sebagai peristiwa dan mempertahankannya di Amazon Simple Storage Service (Amazon S3).

Implementasi Amazon Kinesis Data Streams

Alur kerja terdiri dari langkah-langkah berikut:

  1. Ketika layanan mikro “/withdraw” atau “/credit” mengalami perubahan status peristiwa, mereka mempublikasikan acara dengan menulis pesan ke Kinesis Data Streams.

  2. Layanan mikro lainnya, seperti “/balance” atau “/creditLimit,” membaca salinan pesan, menyaringnya untuk relevansi, dan meneruskannya untuk diproses lebih lanjut.

EventBridge Implementasi Amazon

Arsitektur dalam ilustrasi berikut menggunakan EventBridge. EventBridge adalah layanan tanpa server yang menggunakan peristiwa untuk menghubungkan komponen aplikasi, yang memudahkan Anda untuk membangun aplikasi yang dapat diskalakan dan digerakkan oleh peristiwa. Arsitektur berbasis peristiwa adalah gaya membangun sistem perangkat lunak yang digabungkan secara longgar yang bekerja sama dengan memancarkan dan menanggapi peristiwa. EventBridge menyediakan bus acara default untuk acara yang diterbitkan oleh AWS layanan, dan Anda juga dapat membuat bus acara khusus untuk bus khusus domain.

EventBridge Implementasi Amazon

Alur kerja terdiri dari langkah-langkah berikut:

  1. Acara OrderPlaced “” diterbitkan oleh layanan mikro “Pesanan” ke bus acara khusus.

  2. Layanan mikro yang perlu mengambil tindakan setelah pesanan ditempatkan, seperti layanan mikro “/route”, diprakarsai oleh aturan dan target.

  3. Layanan mikro ini menghasilkan rute untuk mengirimkan pesanan ke pelanggan dan memancarkan acara RouteCreated "”.

  4. Layanan mikro yang perlu mengambil tindakan lebih lanjut juga diprakarsai oleh acara RouteCreated "”.

  5. Acara dikirim ke arsip acara (misalnya, EventBridge arsip) sehingga dapat diputar ulang untuk diproses ulang, jika diperlukan.

  6. Peristiwa urutan historis dikirim ke antrian Amazon SQS baru (antrean putar ulang) untuk diproses ulang, jika diperlukan.

  7. Jika target tidak dimulai, peristiwa yang terpengaruh ditempatkan dalam antrian surat mati (DLQ) untuk analisis dan pemrosesan ulang lebih lanjut.

Anda harus mempertimbangkan untuk menggunakan pola ini jika:

  • Peristiwa digunakan untuk sepenuhnya membangun kembali status aplikasi.

  • Anda memerlukan acara untuk diputar ulang dalam sistem dan bahwa status aplikasi dapat ditentukan kapan saja.

  • Anda ingin dapat membalikkan peristiwa tertentu tanpa harus memulai dengan status aplikasi kosong.

  • Sistem Anda memerlukan aliran acara yang dapat dengan mudah diserialisasi untuk membuat log otomatis.

  • Sistem Anda memerlukan operasi baca berat tetapi ringan pada operasi tulis; operasi baca berat dapat diarahkan ke database dalam memori, yang terus diperbarui dengan aliran peristiwa.

penting

Jika Anda menggunakan pola sumber peristiwa, Anda harus menerapkan Sagapola untuk menjaga konsistensi data di seluruh layanan mikro.