Maison  >  Article  >  développement back-end  >  Quand utiliser watch.Interface, cache.NewInformer, cache.NewSharedInformer et cache.NewSharedIndexInformer ?

Quand utiliser watch.Interface, cache.NewInformer, cache.NewSharedInformer et cache.NewSharedIndexInformer ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-17 08:24:03298parcourir

When to Use watch.Interface, cache.NewInformer, cache.NewSharedInformer, and cache.NewSharedIndexInformer?

watch.Interface vs cache.NewInformer vs cache.NewSharedIndexInformer : un guide des niveaux d'abstraction

Introduction

Lorsqu'ils surveillent les ressources Kubernetes et réagissent aux modifications, les développeurs peuvent choisir parmi différentes options dans le package Kubernetes client-go. Cet article vise à clarifier les différences entre watch.Interface, cache.NewInformer, cache.NewSharedInformer et cache.NewSharedIndexInformer.

watch.Interface

watch.Interface est une abstraction de bas niveau qui vous permet de surveiller les modifications apportées aux ressources Kubernetes via un ResultChan(). Il fournit des événements ajoutés/modifiés/supprimés, vous donnant une visibilité sur les modifications des ressources. Cependant, il n'inclut que l'état "après" de la ressource.

cache.NewInformer

cache.NewInformer introduit un niveau d'abstraction plus élevé. Il comprend un observateur, un listeur et un cache en mémoire. En implémentant un cache.ResourceEventHandler, vous pouvez recevoir des appels OnAdd()/OnUpdate()/OnDelete(). Cela vous fournit à la fois les états « avant » et « après » de la ressource, ce qui la rend plus pratique pour la gestion des modifications.

cache.NewSharedInformer

cache.NewSharedInformer partage la connexion avec le serveur API et d’autres ressources entre vos informateurs. Cela optimise l’utilisation des ressources et améliore les performances. Il est recommandé par rapport à cache.NewInformer, sauf si vous avez des exigences spécifiques en matière d'isolation.

cache.NewSharedIndexInformer

cache.NewSharedIndexInformer ajoute un index au cache de données. Ceci est particulièrement utile si vous travaillez avec un grand ensemble de données et avez besoin d’une indexation efficace pour une recherche et un filtrage rapides. C'est l'option la plus riche en fonctionnalités mais aussi la plus complexe à mettre en œuvre.

Recommandation

Dans la plupart des cas d'utilisation, il est recommandé d'utiliser SharedInformers au lieu de l'option inférieure abstractions de niveau. SharedInformers offre des avantages en termes de performances et simplifie la gestion des ressources. Instanciez de nouveaux SharedInformers à partir de la même SharedInformerFactory pour une utilisation optimale des ressources.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn