Fixez des délais explicites de connexion et de lecture sur le client, parce que plusieurs clients HTTP Java attendent indéfiniment par défaut, et ajoutez un délai global de requête. Bornez le pool de connexions pour cet hôte, ne réessayez que les appels idempotents avec backoff et jitter, et ajoutez un disjoncteur pour que des échecs durables échouent vite. Décidez le repli à l'avance : une valeur en cache, une réponse dégradée, ou une erreur claire plutôt qu'une requête qui pend.
Pourquoi les recruteurs posent cette question
Le recruteur veut savoir si vous vous êtes déjà brûlé sur une configuration par défaut. Signaler que certains clients attendent pour toujours, et qu'un pool de connexions partagé plus un hôte lent, c'est ainsi qu'une dépendance bloque des endpoints sans rapport, montre de l'expérience opérationnelle. Les relances sondent comment vous testeriez la panne, ce qui veut en général dire un proxy d'injection de fautes ou un bouchon qui retarde les réponses.
Comment structurer votre réponse
- Fixez chaque délai explicitement et ne faites jamais confiance aux valeurs par défaut.
- Isolez la dépendance avec son propre pool de connexions borné.
- N'ajoutez des reprises que là où c'est sûr, avec backoff et disjoncteur.
- Définissez et implémentez le comportement dégradé.
Exemple de réponse
Je pars du principe que les valeurs par défaut sont mauvaises, parce que plusieurs clients attendront volontiers pour toujours sur une lecture, et c'est exactement comme ça qu'une dépendance lente finit par garer tous les threads de mon service. Donc délai de connexion court, délai de lecture fondé sur leur vraie distribution de latence plutôt que sur un chiffre rond, et un délai global de requête par-dessus, puisque les reprises et les redirections peuvent s'empiler. Ensuite l'isolation : cette dépendance a son propre pool de connexions avec un maximum, pour que sa dégradation ne consomme pas toute la capacité dont les autres appels ont besoin. Des reprises uniquement sur les opérations idempotentes, plafonnées à deux tentatives avec backoff exponentiel et jitter, et un disjoncteur devant, pour qu'une fois le taux d'erreur au-dessus d'un seuil j'échoue immédiatement pendant une période de repos plutôt que d'empiler des requêtes sur quelque chose qui souffre déjà. La dernière pièce, c'est ce que l'utilisateur obtient, décidé à l'avance. Sur une intégration de tarifs d'expédition, nous servions des tarifs en cache avec un marqueur de fraîcheur plutôt que de faire échouer le paiement, et ça a transformé une panne fournisseur en un petit problème de précision au lieu de commandes perdues. Je le teste avec un proxy qui injecte des délais.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Comment choisiriez-vous la valeur du délai de lecture ?
- Qu'est-ce que le cloisonnement, et comment s'applique-t-il ici ?
- Comment testez-vous que votre chemin de repli fonctionne vraiment ?
Autres questions pour Développeur Java
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions