Maison >Java >JavaQuestions d'entretien >À combien de ces 9 questions d'entretien sur les microservices pouvez-vous répondre ?

À combien de ces 9 questions d'entretien sur les microservices pouvez-vous répondre ?

Java后端技术全栈
Java后端技术全栈avant
2023-08-22 15:46:381547parcourir

Aujourd'hui, les microservices font partie des compétences nécessaires à nos développeurs Java. Peu importe si vous utilisez réellement l'architecture des microservices dans votre travail, l'intervieweur vous le demandera certainement, alors frère Tian a compilé une liste de questions d'entretien sur les microservices pour vous.

Sans plus attendre, allons droit au but.

1. Que sont les microservices ?

Un service léger unique est généralement un microservice indépendant Les microservices se concentrent sur la mise en œuvre d'une certaine fonction. Par exemple, le système de connexion se concentre uniquement sur la mise en œuvre des fonctions de connexion des utilisateurs. Il sort de la boîte et peut être exécuté indépendamment. Le système d'architecture de microservices est un système distribué, qui divise les modules d'unités de service en fonction des activités, résout les défauts d'un système unique et répond de plus en plus aux besoins commerciaux complexes.

Martin Fowler : À l'heure actuelle, il n'existe pas de définition unifiée et standard du secteur des microservices. Mais d’une manière générale, l’architecture des microservices est un modèle architectural ou un style architectural qui préconise de diviser une seule application en un ensemble de petits services. Chaque service fonctionne selon son propre processus indépendant. Les services coopèrent et se coordonnent les uns avec les autres pour offrir aux utilisateurs une valeur ultime. Utilisez une communication légère entre les services. Chaque service est construit autour d'un métier spécifique et peut être déployé indépendamment dans des environnements de production. De plus, un mécanisme de gestion des services unifié et centralisé doit être évité autant que possible.

En termes simples :

Microservice est une application de service indépendante avec une seule responsabilité. Dans l'outil Intellij Idea, il existe des modules indépendants développés à l'aide de Maven. Plus précisément, il s'agit d'un petit module développé à l'aide de Springboot pour gérer une seule logique métier professionnelle.

Les microservices mettent l'accent sur la taille du service, en se concentrant sur un certain point, résolvant spécifiquement un certain problème/implémentant une application de service correspondante, qui peut être considérée comme un module dans l'idée.

Par exemple, si vous allez à l'hôpital : vos dents sont inconfortables, alors vous allez chez le dentiste. Si vous avez mal à la tête, rendez-vous dans un service du cerveau. Chaque département est un microservice et chaque fonction est un service.

2. Comment les microservices communiquent-ils de manière indépendante ?

Communication synchrone : dobbo via Appel de procédure à distance RPC, springcloud via l'appel json de l'interface REST, etc. Asynchrone : file d'attente de messages, telle que : RabbitMq, ActiveM, Kafka, etc.

3. Quelles sont les différences entre SpringCloud et Dubbo ?

  • Tout d'abord, ce sont tous des cadres de gestion distribués.

  • dubbo est une transmission binaire, qui consomme moins de bande passante. SpringCloud utilise la transmission http, qui a un peu plus de bande passante. Lors de l'utilisation du protocole http, les messages JSON sont généralement utilisés, ce qui consomme plus.

  • Dubbo est difficile à développer, et les packages jar sur lesquels il s'appuie ont de nombreux problèmes les grands projets ne peuvent pas être résolus. L'héritage de tiers de SpringCloud peut être généré en un clic et naturellement intégré.

  • L'accord du protocole d'interface SpringCloud est relativement souple,
    des mesures administratives fortes sont nécessaires pour limiter les mises à niveau désordonnées de l'interface

    .

  • La plus grande différence :
    Spring Cloud abandonne la communication RPC de Dubbo et adopte la méthode REST basée sur HTTP.

  • À proprement parler, ces deux méthodes ont leurs propres avantages et inconvénients. Même si dans une certaine mesure, cette dernière sacrifie la performance des appels de service, elle évite également les problèmes causés par le RPC natif évoqués ci-dessus. De plus, REST est plus flexible que RPC. Le fournisseur de services et l'appelant s'appuient uniquement sur un contrat, et il n'y a pas de forte dépendance au niveau du code. Ceci est plus approprié dans un environnement de microservices qui met l'accent sur une évolution rapide.
À combien de ces 9 questions d'entretien sur les microservices pouvez-vous répondre ?
SpringCloud et Dubbo.png

4. La relation entre SpringBoot et SpringCloud ?

  • SpringBoot : concentrez-vous sur le développement rapide et pratique d'un microservice individuel unique (concentrez-vous sur le microservice) : concentrez-vous sur le cadre global de coordination et de gouvernance des microservices, combinez et gérez les microservices individuels développés par SpringBoot (concentrez-vous sur) ; la macro);

  • SpringBoot peut être utilisé indépendamment sans SpringCloud, mais SpringCloud ne peut pas être utilisé sans SpringBoot, qui est une relation de dépendance.

5. Qu'est-ce qu'un disjoncteur ? Qu’est-ce que le déclassement du service ?

  • La fonction du disjoncteur de service est similaire à celle de notre fusible domestique. Lorsqu'un service devient indisponible ou que le délai de réponse expire, afin d'éviter une avalanche de l'ensemble du système, les appels au service sont temporairement arrêtés.

  • La dégradation du service est basée sur la situation de charge de l'ensemble du système. Pour certaines situations où la charge est relativement élevée, afin d'éviter que certaines fonctions (scénarios métiers) ne soient surchargées ou ne répondent lentement, en interne abandonner temporairement les demandes de certaines interfaces et données non essentielles, et renvoie directement des informations de gestion des erreurs de secours préparées à l'avance. De cette manière, même si un service avec perte est fourni, la stabilité et la disponibilité de l'ensemble du système sont garanties.

6. Quels sont les avantages et les inconvénients des microservices ? Parlez-moi des pièges que vous avez rencontrés dans le projet.

  • Avantages : Couplage lâche, centré sur une seule fonction métier, indépendante des langages de développement, et taille d'équipe réduite. Pendant le développement, vous n'avez pas besoin de connaître grand-chose sur l'entreprise, concentrez-vous simplement sur les fonctions actuelles, qui sont pratiques et centralisées, et les fonctions sont petites et raffinées. Si une fonction d’un microservice est endommagée, cela n’aura pas beaucoup d’impact sur les autres fonctions et le problème peut être rapidement localisé. Les microservices se concentrent uniquement sur le code de logique métier actuel et ne seront pas mélangés avec du HTML, du CSS ou d'autres interfaces. Il peut être associé de manière flexible à la technologie et il est plus confortable d'être indépendant.

  • Inconvénients : à mesure que le nombre de services augmente, la gestion est complexe, le déploiement est complexe, les exigences du serveur augmentent, la pression des communications et des appels de service augmente, les ingénieurs d'exploitation et de maintenance augmentent la pression, les ressources humaines augmentent, les dépendances du système augmentent et la cohérence des données augmente, la surveillance des performances.

7. Quelle est la différence entre eurêka et gardien de zoo ?

zookeeper est un principe CP, forte cohérence et tolérance aux pannes de partition. eureka est le principe AP de disponibilité et tolérance de partition. ZooKeeper Lorsque le nœud maître échoue, ZooKeeper resélectionnera le nœud maître parmi les nœuds restants, ce qui prend trop de temps. Bien qu'il puisse éventuellement être restauré, le service sera indisponible lors de la sélection du nœud maître, ce qui ne peut être toléré. Tous les nœuds d'Eureka sont égaux. Si un nœud raccroche, les autres nœuds maintiendront toujours un service normal.

8. Quelles piles technologiques connaissez-vous sur les microservices ? Citez-en un ou deux.Ar chaius, Ali's Dlamond, etc

Service d'inscription et découverteEurka, Consul, Zookeeper, etc.Appel de serviceRepos (communication de service), RPC (Dubbo), GRpc
Disjoncteur de service Hystrix, Envoy, etc.
Équilibrage de charge Nginx, Ribbon, etc.
Appel d'interface de service (outil client simplifié) Fegin etc.
Mes, sauge queue Kafka、 RabbitMQ, ActiveMQ, etc.
Gestion du centre de configuration des services SpringCloudConfig, Chef, etc.
Routage des services (passerelle API) Zuul, etc.
Surveillance des services Zabbix, Nagios, Metrics, Spectator et plus
Suivi complet des liens Zipkin, Brave, Dapper, etc.
Déploiement de services Docker, OpenStack, Kubernetes, etc.
Kit de développement d'opérations de flux de données SpringCloud Stream (encapsulé avec Redis, Rabbit , kafka, etc. Envoyer et recevoir des messages)
Event Message Bus Spring Cloud Bus

9. Qu'est-ce que l'architecture des microservices ?

Si vous avez compris plus tôt ce que sont les microservices, alors vous comprenez déjà l'architecture des microservices.

L'architecture des microservices consiste à gérer, intégrer et appliquer des microservices. L'architecture des microservices repose sur des microservices et est basée sur des microservices.

Par exemple : Que sont les microservices ont été répertoriés ci-dessus. Dans un hôpital, chaque service est un microservice indépendant, l'hôpital est donc une architecture de microservices à grande échelle, tout comme le directeur peut gérer les services suivants. L'architecture des microservices a principalement cette fonction.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer