Analyse de 29 points de connaissance microservices à maîtriser en 2020? Je ne comprends pas que tu viennes à moi!

Introduction d'ouverture

Les microservices (ou architecture de microservices) sont une approche architecturale native du cloud dans laquelle une seule application se compose de nombreux composants ou services plus petits qui sont faiblement couplés et déployables indépendamment. Ces services
ont généralement leur propre pile, y compris des bases de données et des modèles de données; ils
communiquent entre eux via une combinaison d'API REST, de flux d'événements et de courtiers de messages;
ils sont organisés par capacités métier et les lignes séparant les services sont généralement appelées contextes bornés.
Bien que de nombreuses discussions sur les microservices aient tourné autour des définitions et des caractéristiques architecturales, leur valeur peut être comprise plus généralement à travers des avantages commerciaux et organisationnels assez simples:

  • Vous pouvez mettre à jour le code plus facilement.
  • L'équipe peut utiliser différentes piles pour différents composants.
  • Les composants peuvent être mis à l'échelle indépendamment les uns des autres, ce qui réduit le gaspillage et le coût de mise à l'échelle de l'ensemble de l'application, car une seule fonction peut faire face à une charge excessive.

Les microservices peuvent également être compris par ce qu'ils ne sont pas. Les deux comparaisons les plus fréquentes de l'architecture de microservices sont l'architecture globale et l'architecture orientée services (SOA).
La différence entre les microservices et l'architecture globale est que les microservices se composent de nombreux services plus petits et faiblement couplés pour former une application, par opposition à l'approche globale des grandes applications étroitement couplées.
La différence entre les microservices et SOA peut ne pas être claire. Bien qu'il soit possible de former un contraste technique entre les microservices et la SOA, en particulier autour du rôle du bus de services d'entreprise (ESB), il est plus facile de considérer la différence comme l'un des domaines. SOA est un travail à l'échelle de l'entreprise qui vise à standardiser la façon dont tous les services communiquent et s'intègrent les uns aux autres, tandis que l'architecture des microservices est spécifique à l'application.
Insérez la description de l'image ici

texte

1. Qu'est-ce que Spring Cloud?

Dans les microservices, SpringCloud est un système qui fournit une intégration avec des systèmes externes. C'est un framework agile qui peut créer des applications rapidement et facilement. Associé à un nombre limité de traitements de données, il joue un rôle très important dans l'architecture des microservices.
Voici les principales fonctionnalités de Spring Cloud:

  • Configuration versionnée / distribuée.
  • Inscription et découverte du service.
  • Services et appels entre services.
  • routage.
  • Disjoncteur et équilibrage de charge.
  • Messagerie distribuée.

2. Qu'est-ce que Spring Boot?

Spring Boot est le sujet principal des questions d'entretien sur les microservices.
Avec l'ajout de nouvelles fonctionnalités, Spring devient de plus en plus complexe. Chaque fois que vous démarrez un nouveau projet, vous devez ajouter un nouveau chemin de génération ou une dépendance Maven. En bref, vous devez tout faire à partir de zéro. Spring Boot est une solution qui vous permet d'éviter toute configuration de code.

3. Comment remplacer les propriétés par défaut du projet Spring Boot?

Cela peut être fait en spécifiant les propriétés dans le fichier application.properties.
Par exemple,

  • Dans les applications Spring MVC, vous devez spécifier le suffixe et le préfixe. Cela peut être fait en entrant les propriétés mentionnées ci-dessous dans le fichier application.properties.
  • Pour le suffixe-spring.mvc.view.suffix: .jsp
  • Pour le prefix-spring.mvc.view.prefix: / WEB-INF /

Quatrièmement, le rôle de l'actionneur dans Spring Boot

C'est l'une des fonctionnalités les plus importantes qui vous aide à accéder à l'état actuel des applications exécutées dans un environnement de production. Plusieurs indicateurs peuvent être utilisés pour vérifier l'état actuel. Ils fournissent également des points de terminaison pour les services Web RESTful, qui peuvent être simplement utilisés pour vérifier différentes métriques.

5. Comment implémenter la sécurité Spring dans les applications Spring Boot?

La mise en œuvre nécessite une configuration minimale. Tout ce que vous avez à faire est spring-boot-starter-security pour ajouter starter au fichier pom.xml. Vous devez également créer une classe de configuration Spring qui remplacera les méthodes requises tout en étendant la sécurité dans l'application WebSecurityConfigurerAdapter. Voici un exemple de code:

package com.gkatzioura.security.securityendpoints.config; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.security.config.annotation.web.builders.HttpSecurity; 
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; 
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
         
@Override    
protected void configure(HttpSecurity http) throws Exception {
    
             
http.authorizeRequests()             
.antMatchers("/welcome").permitAll()             
.anyRequest().authenticated()             
.and()             
.formLogin()             
.permitAll()             
.and()             
.logout()             
.permitAll();     
} 
}

6. Quels conteneurs intégrés sont pris en charge par Spring Boot?

Chaque fois que vous créez une application Java, vous pouvez la déployer de deux manières: à l'
aide d'un conteneur d'applications externe.
Incorporez le conteneur dans le fichier jar.
Spring Boot comprend les serveurs Jetty, Tomcat et Undertow, qui sont tous intégrés.
Jetty - Utilisé pour un grand nombre de projets, Eclipse Jetty peut être intégré dans des frameworks, des serveurs d'applications, des outils et des clusters.
Tomcat-Apache Tomcat est une implémentation open source JavaServer Pages qui peut être bien utilisée avec les systèmes embarqués.
Undertow - un serveur Web flexible et proéminent, il utilise un petit programme de traitement unique pour développer un serveur Web.

7. Que signifie le test de bout en bout des microservices?

Les tests de bout en bout vérifient tous les processus du flux de travail pour vérifier que tout fonctionne comme prévu. Cela garantit également que le système fonctionne de manière uniforme pour répondre aux besoins de l'entreprise.

8. Qu'est-ce que la surveillance sémantique?

Il combine la surveillance de l'ensemble de l'application et des tests automatisés. Le principal avantage de la surveillance sémantique est de découvrir les facteurs les plus rentables pour votre entreprise.
D'un point de vue commercial, la surveillance sémantique et la surveillance de la couche de service peuvent surveiller les microservices. Une fois qu'un problème est détecté, ils peuvent obtenir une isolation et une classification erronées plus rapides, réduisant ainsi le temps important requis pour la réparation. Il classe la couche service et la couche transaction pour identifier les transactions affectées par une disponibilité ou des performances médiocres.

9. Comment configurer la découverte de services?

Il existe plusieurs façons de configurer la découverte de services. Je vais choisir celui que je pense être le plus efficace, l'Eureka de Netflix. Il s'agit d'un programme simple qui n'affectera pas beaucoup l'application. De plus, il prend en charge plusieurs types d'applications Web.
La configuration d'Eureka se compose de deux étapes: la configuration du client et la configuration du serveur.

La configuration du client peut être effectuée facilement à l'aide des fichiers de propriétés. Dans clas spath, Eureka recherche un fichier eureka-client.properties. Il recherche également la couverture causée par l'environnement dans le fichier de propriétés spécifiques à l'environnement.

Pour la configuration du serveur, vous devez d'abord configurer le client. Une fois terminé, le serveur démarre un client, qui est utilisé pour rechercher d'autres serveurs. . Par défaut, le serveur Eureka utilise la configuration client pour rechercher des serveurs homologues.

10. Pourquoi choisir une architecture de microservices?

C'est une question d'entrevue de microservice très courante, vous devriez être prêt! L'architecture des microservices offre de nombreux avantages. Voici quelques-uns:

  • Les microservices peuvent facilement s'adapter à d'autres frameworks ou technologies.
  • L'échec d'un seul processus n'affectera pas l'ensemble du système.
  • Accompagner les grandes entreprises et les petites équipes.
  • Il peut être déployé indépendamment dans un temps relativement court.

11. Pourquoi ai-je besoin de rapports et de tableaux de bord dans les microservices?

Les rapports et les tableaux de bord sont principalement utilisés pour surveiller et maintenir les microservices. Il existe plusieurs outils qui peuvent aider à atteindre cet objectif. Les rapports et les tableaux de bord peuvent être utilisés pour:

  • Découvrez quels microservices exposent quelles ressources.
  • Découvrez quels services sont affectés lorsque le composant change.
  • Fournissez un point simple, tant que vous avez besoin d'un document, vous pouvez y accéder.
  • La version du composant déployé.

12. Pourquoi les gens hésitent-ils à utiliser les microservices?

J'ai vu de nombreux développeurs tâtonner sur ce problème. Après tout, cette question leur sera posée lors de l'entretien pour le rôle d'architecte de microservices, donc admettre ses lacunes peut être un peu délicat. Voici quelques bonnes réponses:

  • Ils nécessitent beaucoup de collaboration, les microservices nécessitent beaucoup de collaboration. Différents modules de microservices peuvent être dispersés dans différentes équipes, et les équipes doivent toujours maintenir une bonne synchronisation.
  • Ils ont besoin de construire une architecture lourde - le système est distribué et de nombreuses architectures sont impliquées.
  • Ils ont besoin de trop de planification pour gérer les frais généraux opérationnels - si vous prévoyez d'utiliser une architecture de microservices, vous devez être préparé pour les frais généraux opérationnels.
  • Des professionnels qualifiés sont nécessaires, capables de prendre en charge des microservices distribués de manière hétérogène.

13. Comment fonctionne PACT?

PACT est un outil open source. Il permet de tester l'interaction entre les consommateurs et les prestataires de services. Le développeur de services grand public écrit d'abord un test qui définit le mode d'interaction avec le fournisseur de services. Le test inclut le statut du fournisseur, le corps de la requête et la réponse attendue. Sur cette base, PACT a créé un stub pour effectuer des tests contre lui. La sortie est stockée dans un fichier JSON.

14. Parlez de la conception axée sur le domaine

Concentrez-vous principalement sur la logique du domaine principal. Le modèle basé sur le domaine vérifie les conceptions complexes. Cela implique de travailler régulièrement avec des experts du domaine au niveau de l'entreprise pour résoudre les problèmes liés au domaine et améliorer le modèle d'application. Lorsque vous répondez à cette question d'entretien de microservice, vous devez également mentionner les principes de base de DDD. elles sont:

  • DDD se concentre principalement sur la logique du domaine et le domaine lui-même.
  • La conception complexe est entièrement basée sur le modèle de domaine.
  • Afin d'améliorer la conception du modèle et de résoudre les problèmes émergents, DDD coopère en permanence avec des experts dans le domaine de l'entreprise.

15. Qu'est-ce que le couplage et la cohésion?

Une mesure de la force des dépendances entre les composants est considérée comme un couplage. Une bonne conception est toujours considérée comme ayant une cohésion élevée et un couplage faible.
Les enquêteurs posent souvent des questions sur la cohésion. C'est aussi une autre unité de mesure. Cela ressemble plus au degré auquel les éléments d'un module restent intégrés.
Il ne faut pas oublier qu'une clé importante de la conception de microservices est la combinaison d'un faible couplage et d'une forte cohésion. Lorsque le couplage est faible, le service est très peu dépendant des autres services. Cela préserve l'intégrité du service. Avec une cohésion élevée, il devient possible de stocker toute la logique pertinente dans le service. Sinon, les services essaieront de communiquer entre eux, ce qui affecte les performances globales.

16. Qu'est-ce que Oauth?

Un protocole d'autorisation ouvert, qui permet d'accéder aux ressources du propriétaire de la ressource en activant des applications clientes (telles que les fournisseurs tiers Facebook, GitHub, etc.) sur le service HTTP. Par conséquent, vous pouvez partager des ressources stockées sur un site avec un autre site sans utiliser ses informations d'identification.

OAuth permet à des tiers comme Facebook d'utiliser les informations du compte de l'utilisateur final tout en les gardant en sécurité (sans utiliser ni exposer le mot de passe de l'utilisateur). Il s'agit plutôt d'un intermédiaire au nom de l'utilisateur, tout en fournissant au serveur un jeton pour accéder aux informations requises.

17. Pourquoi avons-nous besoin de conteneurs de microservices?

Pour gérer les applications basées sur des microservices, les conteneurs sont le choix le plus simple. Il aide les utilisateurs à déployer et à se développer individuellement. Vous pouvez également utiliser Docker pour empaqueter des microservices dans des images de conteneur. Sans aucune dépendance ou travail supplémentaire, les microservices peuvent utiliser ces éléments.

18. Quelle est la méthode pour accéder aux microservices RESTful?

Une autre question d'entretien de microservice souvent posée est de savoir comment accéder aux microservices RESTful? Vous pouvez le faire de deux manières:

  • Utilisez des modèles REST à charge équilibrée.
  • Utilisez plusieurs microservices.

19. Quels sont les principaux obstacles aux tests de microservices?

En parlant de lacunes, voici une autre question d'entrevue sur les microservices qui tournera autour des défis rencontrés lors du test des microservices.

Avant de commencer à écrire des cas de test pour les tests d'intégration, les testeurs doivent avoir une compréhension approfondie de tous les processus entrants et sortants. Lorsque des équipes indépendantes développent différentes fonctions, la collaboration peut s'avérer une tâche très difficile. Il est difficile de trouver une fenêtre de temps libre pour effectuer un test de régression complet. À mesure que le nombre de microservices augmente, la complexité du système augmente également. Lors du passage d'une architecture monolithique, les testeurs doivent s'assurer que la communication interne entre les composants n'est pas interrompue.

Vingt erreurs courantes lors de la transition vers les microservices

Les erreurs se produisent souvent non seulement dans le développement, mais également dans certains aspects du processus. Certaines erreurs courantes sont:

  • Les développeurs ne peuvent souvent pas décrire les défis actuels.
  • Réécrivez le programme existant.
  • Les responsabilités, les délais et les limites ne sont pas clairement définis.
  • Échec de la mise en œuvre et de la détermination de la portée de l'automatisation depuis le début.

21. Quelle est la base de la conception de microservices?

C'est probablement l'une des questions d'entretien de microservice les plus courantes. Lorsque vous répondez à cette question, vous devez vous rappeler ce qui suit:

  • Définissez la portée.
  • Combinez un faible couplage et une cohésion élevée.
  • Créez un service avec un ID unique. L'ID unique servira de source d'identification, un peu comme une clé unique dans une table de base de données.
  • Créez la bonne API et portez une attention particulière pendant le processus d'intégration.
  • Restreignez l'accès aux données et limitez-le au niveau requis.
  • Maintenez un flux fluide entre la demande et la réponse.
  • Automatisez la plupart des processus pour réduire la complexité du temps.
  • Gardez le nombre de tables au minimum pour réduire la complexité de l'espace.
  • Surveillez en permanence l'architecture et corrigez les défauts à temps.
  • Le stockage des données de chaque microservice doit être séparé.
  • Pour chaque microservice, il doit y avoir une version indépendante.
  • Déployez le microservice dans le conteneur.
  • Le serveur doit être considéré comme sans état.

22. À quoi sert l'annotation WebMvcTest dans l'application Spring MVC?

L'annotation WebMvcTest est utilisée pour tester les applications Spring MVC. Nous voulons juste démarrer ToTestController. Lorsque ce test unitaire est exécuté, tous les autres contrôleurs et cartes ne seront pas démarrés.

@WebMvcTest(value = ToTestController.class, secure = false):

23. Qu'est-ce qu'un contexte borné?

Le contexte borné est le mode de base de la conception pilotée par domaine. Le département de conception stratégique de DDD se concentre sur les grands modèles et équipes. DDD traite de grands modèles en les divisant en différents contextes délimités et en clarifiant leurs interrelations.

24. Quels sont les différents types d'authentification à deux facteurs?

Trois types d'informations d'identification sont nécessaires pour effectuer une authentification à deux facteurs:

  • Une chose que vous savez, comme le mot de passe, le mot de passe ou le mode de verrouillage de l'écran.
  • Les informations d'identification physiques dont vous disposez, telles que OTP, téléphone ou carte ATM, en d'autres termes, tout type d'informations d'identification que vous avez dans des appareils externes ou tiers.
  • Votre identité physique, comme l'authentification vocale ou la sécurité biométrique, comme une empreinte digitale ou un scanner oculaire.

25. Qu'est-ce qu'un certificat client?

Un certificat numérique utilisé par le système client pour envoyer une demande authentifiée à un serveur distant est appelé un certificat client. Les certificats clients jouent un rôle très important dans de nombreuses conceptions d'authentification mutuelle et fournissent une solide garantie pour l'identité du demandeur.

26. Quelle est la loi de Conway?

La loi de Conway stipule que «la conception de l'organisation du système de conception équivaut à la structure de communication au sein et entre les organisations.» Les
intervieweurs peuvent poser des questions d'interview anti-microservices, telles que la relation entre la loi de Conway et les microservices. Certaines API faiblement couplées forment une architecture de microservice. Cette structure est très adaptée aux petites équipes pour implémenter des composants autonomes. Cette architecture rend les organisations plus flexibles lors de la réorganisation de leurs processus de travail.

27. Comment configurer la journalisation des applications Spring Boot?

Spring Boot prend en charge Log4J2, Java Util Logging et Logback. Il est généralement préconfiguré pour la sortie de la console. Ils peuvent être configurés en spécifiant uniquement logging.level dans le fichier application.properties.

logging.level.spring.framework=Debug

28. Comment allez-vous effectuer les tests de sécurité sur les microservices?

Vous devez tester chaque pièce indépendamment. Il existe trois procédures courantes:

  • Balayage de code - pour s'assurer que toute ligne de code ne comporte aucune erreur et peut être copiée.
  • Flexibilité - La solution de sécurité doit être flexible afin de pouvoir être adaptée aux exigences du système.
  • Les protocoles d'adaptabilité-sécurité doivent être flexibles et mis à jour pour faire face aux nouvelles menaces des pirates informatiques ou des failles de sécurité.

29. Qu'est-ce que l'idempotence et comment l'utilise-t-on?

L'idempotence fait référence à un scénario dans lequel vous effectuez une tâche à plusieurs reprises, mais le résultat final reste le même ou similaire.
L'idempotence est principalement utilisée comme source de données ou comme service distant. Lorsqu'il reçoit plusieurs jeux d'instructions, il ne traite qu'un seul jeu d'instructions.

Hors sujet

C'est la fin de ce partage sur les microservices. En raison du manque d'espace, seule une petite partie du contenu est publiée. Récemment, c'est le meilleur moment pour trouver un emploi. Je souhaite recevoir plus de questions liées aux microservices et de questions d'entretien de la part des principaux fournisseurs. Vous pouvez cliquer ici pour obtenir les informations, le code: qf Ce qui
suit est une capture d'écran de certaines des informations (toutes les informations ont été intégrées dans un document, et le pdf est compressé et emballé).

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/S11035762/article/details/108597794
conseillé
Classement