Ini adalah urutan umum dari dua komponen terdistribusi dalam aplikasi Java kami:
1 A sends request to B
2 B starts some job J in parallel thread
3 B returns response to A
4 A accepts response
5 Job finishes after some time
6 Job sends information to A
7 A receives response from a Job and updates
Ini adalah skenario yang ideal, dengan asumsi semuanya berfungsi. Tentu saja, kehidupan nyata penuh dengan kegagalan. Misalnya, salah satu kasus terburuk mungkin jika #6gagal hanya karena jaringan: pekerjaan telah dijalankan dengan benar, tetapi Atidak tahu apa-apa tentang itu.
Saya mencari pendekatan ringan tentang cara mengelola kesalahan dalam sistem ini. Perhatikan bahwa kami memiliki banyak komponen, jadi mengelompokkannya hanya karena penanganan kesalahan tidak masuk akal. Selanjutnya, saya membuang penggunaan memori / repo yang didistribusikan yang akan diinstal lagi pada setiap komponen dengan alasan yang sama.
Pikiranku menuju ke arah memiliki satu keadaan absolut pada huruf B dan tidak pernah memiliki keadaan yang tetap pada huruf a A. Ini berarti yang berikut:
- sebelum
#1kita tandaiAbahwa unit kerja yaitu perubahan akan segera dimulai - hanya
Bdapat menghapus tanda negara ini. Adapat mengambil info tentangBkapan saja, untuk memperbarui keadaan.- tidak ada perubahan baru pada unit yang sama dapat dipanggil
A.
Bagaimana menurut anda? Apakah ada cara ringan untuk menjinakkan kesalahan dalam sistem semacam ini?