Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:ASMCompressor field reference

Dernière mise à jour :Aug 11, 2026

ASMCompressor est une définition de ressource personnalisée (CRD) qui configure la compression HTTP pour les communications inter-services et le trafic de passerelle dans Service Mesh (ASM). Elle prend en charge les algorithmes Gzip et Brotli.

Fonctionnement de la compression

Lorsque vous appliquez une ressource ASMCompressor, ASM injecte un filtre de compression dans le proxy sidecar Envoy des charges de travail sélectionnées. Ce filtre inspecte les en-têtes des requêtes et des réponses pour déterminer s'il doit compresser le contenu.

La compression s'applique lorsque toutes les conditions suivantes sont remplies :

  • Le type de contenu correspond à l'un des types MIME configurés.

  • La longueur du contenu atteint le seuil minimal défini.

  • Aucun en-tête Content-Encoding n'est déjà présent.

La compression des réponses est activée par défaut. La compression des requêtes est désactivée par défaut et doit être configurée explicitement via request_direction_config.

Exemple

La ressource ASMCompressor suivante active la compression Gzip sur les réponses pour les charges de travail portant le libellé app: httpbin, sur le port de service 8080 :

apiVersion: istio.alibabacloud.com/v1
kind: ASMCompressor
metadata:
  name: httpbin-compressor
  namespace: default
spec:
  workloadSelector:
    app: httpbin
  portNumber: 8080
  compressor_library:
    gzip:
      compression_level: DEFAULT
      window_bits: 12
      memory_level: 5
  response_direction_config:
    common_config:
      min_content_length: 256
      content_type:
        - application/json
        - text/html
        - text/plain
    disable_on_etag_header: true

Champs ASMCompressor

Champ Type Obligatoire Description Par défaut
workloadSelector map\ Oui Libellés permettant de sélectionner les pods sur lesquels appliquer la compression. La portée des libellés est limitée au namespace de la ressource ASMCompressor. Pour plus d'informations, consultez WorkloadSelector. --
isGateway bool Non Définissez cette valeur sur true pour appliquer cette configuration à une passerelle plutôt qu'aux proxies sidecar. false
portNumber int Oui Port de service sur lequel appliquer la compression. Pour les passerelles, il s'agit du port de service de la passerelle. --
compressor_library CompressorLibrary Non Paramètres de l'algorithme de compression pour Gzip ou Brotli. --
request_direction_config RequestDirectionConfig Non Comportement de la compression pour les requêtes. --
response_direction_config ResponseDirectionConfig Non Comportement de la compression pour les réponses. --
per_route_configs ASMCompressorPerRouteConfig Non Remplacements de la compression au niveau des routes. Pris en charge depuis ASM V1.21. --

Champs CompressorLibrary

Champ Type Obligatoire Description Par défaut
gzip GzipCompressor Non Paramètres de compression Gzip. --
brotli BrotliCompressor Non Paramètres de compression Brotli. --

Champs GzipCompressor

Champ Type Obligatoire Description Par défaut
window_bits int Non Taille de la fenêtre pour le tampon de compression. Valeurs valides : 9 à 15. Des valeurs plus élevées améliorent le taux de compression mais augmentent l'utilisation de la mémoire. 12
compression_level string Non Compromis entre le taux de compression et la vitesse. Valeurs valides : BEST (taux le plus élevé, plus lent), SPEED (taux le plus faible, plus rapide), DEFAULT (équilibré). DEFAULT
memory_level int Non Mémoire allouée à l'état de compression interne. Valeurs valides : 1 à 9. Des valeurs plus élevées accélèrent la compression et améliorent la qualité de sortie, mais augmentent l'utilisation de la mémoire. 5
compression_strategy string Non Stratégie de compression zlib. Choisissez-la en fonction des caractéristiques des données à compresser. Pour plus d'informations, consultez Stratégies de compression. DEFAULT_STRATEGY

Stratégies de compression

Valeur Description
DEFAULT_STRATEGY Sélectionnée automatiquement par zlib en fonction des caractéristiques des données d'entrée. Convient à la plupart des cas d'utilisation.
FILTERED Optimisée pour les données prétraitées par un filtre. Généralement utilisée pour la compression multipasse afin d'augmenter le taux de compression.
HUFFMAN_ONLY Utilise uniquement le codage de Huffman sans l'algorithme LZ77. Stratégie la plus rapide avec le taux de compression le plus faible.
RLE Codage par plages (Run-Length Encoding). Idéal pour les données contenant de longues séquences d'octets répétés.
FIXED Utilise un dictionnaire de compression fixe et prédéfini. Utile lorsque les données suivent des schémas connus et prévisibles.

Champs BrotliCompressor

Champ Type Obligatoire Description Par défaut
window_bits int Non Taille de la fenêtre pour le tampon de compression. Valeurs valides : 10 à 24. Des valeurs plus élevées améliorent le taux de compression mais augmentent l'utilisation de la mémoire. 18
quality int Non Niveau de qualité de la compression. Valeurs valides : 0 à 11. Des valeurs plus élevées produisent une sortie plus petite, mais la compression prend plus de temps. 3

Champs RequestDirectionConfig

Champ Type Obligatoire Description Par défaut
common_config CommonConfig Non Comportement du filtre pour la compression des requêtes. --

Champs ResponseDirectionConfig

Champ Type Obligatoire Description Par défaut
common_config CommonConfig Non Comportement du filtre pour la compression des réponses. --
disable_on_etag_header bool Non Si la valeur est true, la compression est ignorée lorsque la réponse inclut un en-tête ETag. Cela permet de préserver l'ETag à des fins de mise en cache. false
remove_accept_encoding_header bool Non Si la valeur est true, l'en-tête Accept-Encoding est supprimé de la requête avant d'être transféré au service amont. Cela empêche le service amont de compresser la réponse, de sorte que le filtre Envoy gère la compression. false

Champs CommonConfig

Champ Type Obligatoire Description Par défaut
min_content_length int Non Taille minimale du corps de la réponse en octets pour déclencher la compression. Les réponses très petites peuvent ne pas bénéficier de la compression. Pour Gzip, un coût CPU plus élevé s'accompagne de meilleurs taux de compression ; testez donc différents seuils pour équilibrer les performances et la bande passante. --
content_type string[] Non Types MIME éligibles à la compression. Seules les réponses dont le Content-Type correspond à une entrée de cette liste sont compressées. Voir ci-dessous

Valeurs par défaut de content_type :

application/javascript, application/json, application/xhtml+xml, image/svg+xml, text/css, text/html, text/plain, text/xml

Champs ASMCompressorPerRouteConfig

La configuration par route remplace les paramètres de compression globaux pour des routes spécifiques. Par exemple, vous pouvez désactiver la compression sur une route de vérification d'état tout en la maintenant activée pour tout autre trafic.

Champ Type Obligatoire Description Par défaut
route_match RouteConfigurationMatch Oui Sélectionne la route à laquelle ce remplacement s'applique. --
disabled bool Oui Définissez cette valeur sur true pour désactiver la compression sur la route correspondante. false

Champs RouteConfigurationMatch

Champ Type Obligatoire Description Par défaut
portNumber uint32 Non Correspond à un port de service spécifique ou à un port de serveur spécifique dans la Gateway. Si omis, tous les ports sont concernés. --
portName string Non Correspondance basée sur le portName d'un serveur dans la Gateway. S'applique uniquement lorsque la politique de compression cible une passerelle. --
gateway string Non Gateway à faire correspondre, au format namespace/name. S'applique uniquement lorsque la politique de compression cible une passerelle. Utilisez-le avec portName et portNumber pour sélectionner un serveur spécifique au sein de la Gateway. --
vhost CommonVirtualHostMatch Non Correspond à un hôte virtuel spécifique. --
name string Non Nom de la configuration de route Envoy à faire correspondre. Nécessite une bonne connaissance de la configuration Envoy sous-jacente. --

Champs CommonVirtualHostMatch

Champ Type Obligatoire Description Par défaut
name string Non Nom de l'hôte virtuel généré par le plan de contrôle, au format host:port. La valeur host correspond au champ host du VirtualService associé ou au nom de domaine complet (FQDN) du service dans le cluster. --
route CommonRouteMatch Non Correspond à une route spécifique au sein de l'hôte virtuel. --

Champs CommonRouteMatch

Champ Type Obligatoire Description Par défaut
name string Non Nom de la route à faire correspondre. Les routes générées par défaut sont nommées default. Si un VirtualService est configuré, utilisez le nom de la route HTTP définie dans le VirtualService. --
action string Non Correspond aux routes par type d'action. Valeurs valides : ROUTE, REDIRECT, DIRECT_RESPONSE, ANY. ANY

Rubriques connexes