Mengendalikan Pampasan dengan Acara
Laksanakan langkah pampasan dalam saga koreografi dengan menerbitkan acara buat asal khusus untuk membalikkan tindakan terdahulu.
Mengendalikan Pampasan dengan Acara ialah pelajaran Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar) percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar), dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar) merangkumi sejumlah 4 pelajaran.
Mengapa Pampasan Sangat Penting
Dalam saga koreografi, perkhidmatan bertindak balas terhadap acara. Tetapi apakah yang berlaku apabila salah satu perkhidmatan itu gagal menyelesaikan bahagiannya dalam transaksi teragih?
Kita memerlukan cara untuk membatalkan sebarang tindakan yang telah berjaya dilakukan oleh perkhidmatan terdahulu. Di sinilah pampasan diperlukan.
Apakah Pampasan?
Pampasan ialah proses menterbalikkan operasi yang telah selesai dalam transaksi teragih. Anggaplah ia sebagai mekanisme 'pengembalian' yang disesuaikan untuk perkhidmatan mikro.
Ia memastikan bahawa jika mana-mana langkah dalam proses perniagaan berbilang perkhidmatan gagal, sistem boleh kembali kepada keadaan yang konsisten.
Pampasan dalam Koreografi
Dalam saga koreografi, tiada pengatur cara pusat. Perkhidmatan berkomunikasi secara langsung melalui acara. Jadi, bagaimanakah kita mencetuskan pampasan?
- Apabila sesuatu perkhidmatan gagal menyelesaikan tugasnya, perkhidmatan itu menerbitkan acara pampasan tertentu.
- Perkhidmatan lain yang telah berjaya menyelesaikan bahagiannya mendengar acara pampasan ini.
- Setelah menerima acara pampasan, perkhidmatan tersebut melaksanakan logik pengembaliannya sendiri.
Mereka Bentuk Acara Pampasan
Acara pampasan mesti mengandungi maklumat yang mencukupi supaya perkhidmatan dapat melakukan pengembalian. Butiran utama biasanya merangkumi:
- ID saga asal atau ID transaksi.
- Butiran tentang tindakan asal yang perlu diterbalikkan.
- Sebarang data yang diperlukan untuk melakukan pembalikan (contohnya jumlah yang perlu dipulangkan atau item yang perlu dilepaskan daripada tempahan).
Contoh: Saga Pemprosesan Pesanan
Pertimbangkan proses pesanan dalam talian:
- Perkhidmatan Pesanan: Mencipta pesanan (menerbitkan
OrderCreated) - Perkhidmatan Pembayaran: Memproses pembayaran (menerbitkan
PaymentProcessed) - Perkhidmatan Inventori: Menempah stok (menerbitkan
InventoryReserved)
Apakah yang berlaku jika Perkhidmatan Inventori gagal menempah stok?
Memulakan Pengembalian
Jika Perkhidmatan Inventori gagal menempah stok, perkhidmatan tersebut hendaklah:
- Tidak menerbitkan
InventoryReserved. - Sebaliknya, menerbitkan acara pampasan seperti
InventoryReservationFailed.
Acara ini memaklumkan perkhidmatan lain bahawa saga tidak dapat diselesaikan dengan berjaya dan tindakan mereka perlu dibatalkan.
Pampasan Perkhidmatan Pembayaran
Perkhidmatan Pembayaran melanggan acara yang menunjukkan kegagalan. Apabila menerima InventoryReservationFailed, perkhidmatan tersebut tahu bahawa ia perlu bertindak:
- Perkhidmatan tersebut akan memulakan pemulangan wang bagi pembayaran yang telah diproses sebelum ini.
- Selepas memulangkan wang, perkhidmatan tersebut mungkin menerbitkan acara baharu seperti
PaymentRefundeduntuk memaklumkan perkhidmatan lain yang berminat.
Pampasan Perkhidmatan Pesanan
Perkhidmatan Pesanan, yang telah mencipta pesanan awal, juga perlu bertindak balas. Perkhidmatan tersebut mungkin mendengar InventoryReservationFailed atau PaymentRefunded.
- Setelah menerima acara sedemikian, Perkhidmatan Pesanan mengemas kini status pesanan kepada 'Dibatalkan' atau 'Gagal'.
- Hal ini memastikan pengguna melihat status pesanan yang tepat.
Melaksanakan Logik Pampasan
Setiap perkhidmatan mesti mengandungi logik untuk mengendalikan acara kemajuan yang berjaya dan acara pampasan tertentu. Ini selalunya bermaksud terdapat pengendali acara yang berasingan bagi setiap satunya.
Berikut ialah contoh ringkas tentang cara Perkhidmatan Pembayaran mendengar acara pampasan dan mencetuskan pemulangan wang:
public class PaymentService {
public static void main(String[] args) {
System.out.println("Payment Service Started.");
// Simulate receiving an event from a message broker
String receivedEvent = "InventoryReservationFailed: Order123";
if (receivedEvent.startsWith("InventoryReservationFailed")) {
String orderId = receivedEvent.split(":")[1];
System.out.println("Received compensation event: " + receivedEvent);
System.out.println("Initiating refund for Order ID: " + orderId + "...");
// In a real system, call a payment gateway API to refund
boolean refundSuccess = processRefund(orderId);
if (refundSuccess) {
System.out.println("Refund processed successfully for " + orderId + ".");
// Publish 'PaymentRefunded' event for other services
System.out.println("Publishing PaymentRefunded event.");
} else {
System.out.println("Refund failed for " + orderId + ".");
// Handle refund failure (e.g., alert, manual intervention)
}
} else {
System.out.println("No compensation event received yet.");
}
System.out.println("Payment Service Shutting Down.");
}
private static boolean processRefund(String orderId) {
// Simulate external refund API call
return true; // Assume success for this example
}
}Semakan Pantas: Tujuan Pampasan
Dalam saga koreografi, jika 'Perkhidmatan Inventori' gagal menempah item selepas 'Perkhidmatan Pembayaran' memproses pembayaran, apakah tujuan utama Perkhidmatan Inventori menerbitkan acara InventoryReservationFailed?
Imbas Kembali: Mengendalikan Pampasan
Anda telah mempelajari betapa pentingnya pampasan dalam saga koreografi untuk mengekalkan konsistensi data dalam sistem teragih. Perkara utama:
- Pampasan membalikkan tindakan yang berjaya apabila sesuatu langkah saga gagal.
- Dalam koreografi, perkhidmatan menerbitkan acara pampasan tertentu untuk memulakan pengembalian.
- Setiap perkhidmatan mesti melaksanakan logik untuk mendengar dan bertindak balas terhadap acara ini, serta menjalankan operasi pembatalannya sendiri.
- Reka bentuk acara yang jelas dan pengendalian yang kukuh adalah penting untuk saga yang berdaya tahan.
Pelajari Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar) dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Mengendalikan Pampasan dengan Acara” percuma?
Ya — teks penuh “Mengendalikan Pampasan dengan Acara” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar), tingkat taraf kepada CoddyKit PRO. Kursus Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar) merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mengendalikan Pampasan dengan Acara”?
Laksanakan langkah pampasan dalam saga koreografi dengan menerbitkan acara buat asal khusus untuk membalikkan tindakan terdahulu. Anda berlatih Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar) menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar)?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar) di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Mengendalikan Pampasan dengan Acara” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar) ini?
Ya. Setiap pelajaran Corak Komunikasi Mikropenkhidmatan (Saga, Pemutus Litar) menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mereka Bentuk Saga Dipacu Acara
- Bas Acara dan Broker Mesej
- Mengendalikan Pampasan dengan Acara
- Membina Pengguna Peristiwa Idempoten