tonton.Interface vs. cache.NewInformer vs. cache.NewSharedIndexInformer
Apabila memantau sumber dalam Kubernetes dan bertindak balas terhadap perubahan, pembangun mempunyai pelbagai pilihan yang tersedia untuk mereka. Memahami perbezaan antara kaedah ini adalah penting.
watch.Interface
Jam tangan.Antaramuka yang diperoleh melalui kaedah seperti rest.Request.Watch() menyediakan ResultChan yang mengalir peristiwa (Ditambah/Diubahsuai/Dipadam) perubahan sumber. Ia menawarkan abstraksi peringkat rendah dan hanya menyediakan keadaan "selepas" sumber.
cache.NewInformer
Fungsi cache.NewInformer membolehkan anda menentukan ResourceEventHandler yang mengendalikan panggilan OnAdd()/OnUpdate()/OnDelete(). Ia termasuk mekanisme untuk menerima kedua-dua keadaan "sebelum" dan "selepas" sumber. Secara dalaman, NewInformer menggunakan watch.Interface melalui NewListWatchFromClient.
cache.NewSharedInformer vs. cache.NewSharedIndexInformer
Fungsi ini menyediakan tahap abstraksi yang lebih tinggi daripada NewInformer. Mereka menggunakan sambungan berkongsi ke pelayan API dan berkongsi sumber di kalangan pemberi maklumat. cache.NewSharedIndexInformer juga menambahkan pengindeksan pada cache data.
Pengesyoran
Untuk kebanyakan kes penggunaan, SharedInformers disyorkan berbanding abstraksi peringkat rendah. SharedInformers berkongsi sumber dan menyediakan tahap abstraksi yang lebih tinggi, memudahkan banyak tugas peringkat rendah. Apabila bekerja dengan set data yang besar, SharedIndexInformers diutamakan kerana keupayaan pengindeksan mereka.
Segera SharedInformers daripada SharedInformerFactory yang sama untuk berkongsi sumber dengan cekap. Contoh ditunjukkan di bawah:
informerFactory := informers.NewSharedInformerFactory(clientset, time.Second*30) podInformer := informerFactory.Core().V1().Pods() serviceInformer := informerFactory.Core().V1().Services() podInformer.Informer().AddEventHandler( // Add event handling ) // Add event handling for serviceInformer informerFactory.Start(wait.NeverStop) informerFactory.WaitForCacheSync(wait.NeverStop)
Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan watch.Interface, cache.NewInformer atau cache.NewSharedIndexInformer dalam Kubernetes?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!