Pengenalan
Apabila memantau sumber Kubernetes dan bertindak balas terhadap perubahan, pembangun boleh memilih daripada pelbagai pilihan dalam Pakej pelanggan-pergi Kubernetes. Artikel ini bertujuan untuk menjelaskan perbezaan antara watch.Interface, cache.NewInformer, cache.NewSharedInformer dan cache.NewSharedIndexInformer.
watch.Interface
watch.Interface ialah abstraksi peringkat rendah yang membolehkan anda memantau perubahan kepada sumber Kubernetes melalui ResultChan(). Ia menyediakan acara Ditambah/Diubahsuai/Dipadam, memberikan anda keterlihatan kepada perubahan sumber. Walau bagaimanapun, ia hanya termasuk keadaan "selepas" sumber.
cache.NewInformer
cache.NewInformer memperkenalkan tahap abstraksi yang lebih tinggi. Ia termasuk pemerhati, pencatat dan cache dalam memori. Dengan melaksanakan cache.ResourceEventHandler, anda boleh menerima panggilan OnAdd()/OnUpdate()/OnDelete(). Ini memberikan anda kedua-dua keadaan "sebelum" dan "selepas" sumber, menjadikannya lebih mudah untuk pengendalian perubahan.
cache.NewSharedInformer
cache.NewSharedInformer berkongsi sambungan dengan pelayan API dan sumber lain antara pemberi maklumat anda. Ini mengoptimumkan penggunaan sumber dan meningkatkan prestasi. Ia disyorkan melalui cache.NewInformer melainkan anda mempunyai keperluan khusus untuk pengasingan.
cache.NewSharedIndexInformer
cache.NewSharedIndexInformer menambah indeks pada cache data. Ini amat berguna jika anda bekerja dengan set data yang besar dan memerlukan pengindeksan yang cekap untuk carian dan penapisan pantas. Ia adalah pilihan yang paling kaya dengan ciri tetapi juga paling kompleks untuk dilaksanakan.
Pengesyoran
Dalam kebanyakan kes penggunaan, disyorkan untuk menggunakan SharedInformers dan bukannya yang lebih rendah abstraksi peringkat. SharedInformers memberikan faedah prestasi dan memudahkan pengurusan sumber. Segerakan SharedInformers baharu daripada SharedInformerFactory yang sama untuk penggunaan sumber yang optimum.
Atas ialah kandungan terperinci Bila hendak menggunakan watch.Interface, cache.NewInformer, cache.NewSharedInformer dan cache.NewSharedIndexInformer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!