Seorang pembangun yang sedang menguji sistem penghalaan suara telah menambah kuarantin sementara yang memaksa panggilan seterusnya menggunakan laluan berbeza selama 300 saat selepas kegagalan berlaku. Penambahbaikan ini menghalang perisian daripada cuba menggunakan laluan rosak yang sama berulang kali, sekali gus mengurangkan risiko gangguan berantai (cascade outage).
Mengapa logik lama menjadi masalah
Penghala asal mengikut peraturan yang kaku: apabila sesebuah stesen kerja sibuk, ia hanya akan cuba laluan yang sama sekali lagi. Jika laluan tersebut terus gagal, sistem akan merekodkan ralat tersebut tetapi tidak pernah mengubah tingkah lakunya. Dalam praktiknya, satu titik kegagalan (single point of failure) boleh terus menyekat panggilan kerana perisian tersebut terus berulang dalam jalan buntu yang sama.
Mekanisme kuarantin baharu
Kemas kini ini menambah tiga kekangan:
- Tidak kekal – penanda kuarantin tamat tempoh selepas tempoh masa yang singkat.
- Tidak bersifat global – ia hanya terpakai kepada laluan khusus yang gagal, bukan kepada setiap laluan.
- Memori terhad – sistem merekodkan kegagalan dalam fail tempatan dan akan melupakannya sebaik sahaja laluan baharu berjaya.
Apabila percubaan pertuturan gagal, penghala akan menulis penanda (flag) “quarantined” untuk laluan tersebut. Untuk 300 saat seterusnya, sebarang permintaan masuk akan dihalakan semula secara automatik ke laluan alternatif. Sebaik sahaja permintaan berjaya pada laluan berbeza, penanda tersebut akan dipadamkan, memastikan pembaikan tersebut tidak berlarutan lebih lama daripada yang diperlukan.
Manfaat dan pertukaran (trade-offs)
Keuntungan utamanya ialah daya tahan (resilience): gangguan sementara tidak lagi menjejaskan keseluruhan perkhidmatan. Dengan mengehadkan kuarantin kepada lima minit, sistem dapat mengelakkan kehilangan perkhidmatan jangka panjang sambil tetap memberi masa kepada rangkaian untuk pulih.
Pendekatan ini membawa risiko. Gangguan rangkaian yang singkat boleh mencetuskan kuarantin yang memaksa panggilan melalui laluan yang kurang optimum, sekali gus meningkatkan kependaman (latency) atau kos. Jika laluan alternatif juga merosot, sistem boleh melompat-lompat antara laluan, lalu mewujudkan ketidakstabilan. Operator memerlukan keupayaan untuk melihat penanda kuarantin bagi menentukan sama ada penghalaan semula itu disengajakan atau merupakan simptom kepada isu yang lebih mendalam.
Apa yang perlu diperhatikan seterusnya
- Metrik: Pantau kekerapan dan tempoh kuarantin untuk melihat sama ada tempoh 300 saat itu sesuai.
- Skop: Pasukan mungkin cuba meluaskan logik ini kepada perkhidmatan lain yang mengalami corak cubaan semula (retry) yang statik.
- Automasi: Tambah amaran apabila sesuatu laluan berulang kali memasuki kuarantin untuk mencetuskan penyelenggaraan proaktif sebelum pengguna menyedari masalah tersebut.
Pengajaran utamanya adalah mudah: sistem yang tidak merekodkan kegagalan terbaharunya tidak dapat menyesuaikan diri dengan persekitaran yang berubah-ubah. Dengan menjadikan sejarah kegagalan boleh dilihat dan bertindak ke atasnya—secara sementara—jurutera dapat memastikan perkhidmatan suara berjalan lancar tanpa perlu menunggu reka bentuk semula secara menyeluruh.
Sumber: hantaran asal pembangun di dev.to.
Sertai perbincangan: https://t.me/GyaanSetuAi
