← Toutes les leçons
Leçon 09Model Context Protocol Advanced Topics
State and the StreamableHTTP transport
Audio récapitulatif
Pas de récapitulatif audio pour cette leçon.
Notes de cours
Concepts Clés : Flags de Réponse (Stateless et JSON)
Contexte : Mise à l'échelle (Scaling) et Load Balancer
- Problème : Un serveur MCP populaire peut nécessiter une mise à l'échelle horizontale (plusieurs copies de serveur).
- Solution : Utiliser un équilibreur de charge (Load Balancer) pour répartir les requêtes.
- Défi : Maintenir la cohérence des sessions (ex: requêtes de type SSE) lorsque les requêtes sont routées aléatoirement vers différents serveurs.
Flag stateless (Sans état)
- Fonction : Lorsque ce flag est mis à true, le serveur ne maintient plus de session (pas d'ID de session).
- Conséquences Négatives :
- Le serveur ne peut plus suivre un client spécifique.
- Le chemin de réponse SSE (Server-Sent Events) ne peut plus être utilisé pour envoyer des requêtes au client.
- Fonctionnalités comme l'échantillonnage (sampling), le journal de progression ou les abonnements sont impossibles.
- Avantages :
- Le serveur n'a pas besoin de passer par l'initialisation du client (pas de requêtes d'initialisation et de notification de suivi).
- Réduction du trafic reçu par le serveur.
- Trade-off : Gain en performance/simplicité contre perte de fonctionnalités de session.
Flag json response (Réponse JSON)
- Fonction : Lorsque ce flag est mis à true, les requêtes POST envoyées au client n'ont pas le streaming activé.
- Conséquences :
- Le client attend la réponse finale complète.
- Aucun message intermédiaire (comme les logs ou les étapes de connexion) n'est reçu pendant le traitement de la requête (ex: appel d'outil).
- Trade-off : Réception de données en bloc (final) contre perte du flux de données en temps réel (streaming).
Recommandation de Développement
- Lors du développement local, utilisez le transport qui sera utilisé en production (ex: HTTP streamable) pour éviter des problèmes de configuration ultérieurs.
Takeaways
- L'utilisation d'un équilibreur de charge (Load Balancer) pour la mise à l'échelle nécessite de gérer la cohérence des sessions.
- Le flag stateless désactive le suivi de session, ce qui améliore la performance mais empêche l'utilisation de SSE et le suivi client.
- Le flag json response désactive le streaming des requêtes POST, forçant le client à attendre la réponse finale complète.
- Le choix entre les deux flags représente un compromis entre la performance/simplicité et la fonctionnalité de session/flux de données en temps réel.
- Il est recommandé d'utiliser le transport de production lors du développement local pour éviter les problèmes de configuration.
Cartes mémo 9 cartes
Question
cliquez pour révéler · ←/→
Réponse
cliquez pour retourner
Vérification des connaissances 0 questions
No quiz for this lesson yet.