Partage de technologie

Construction du projet Spring Cloud

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Répartition des services :

1. Principe de responsabilité unique : dans une architecture de microservices, un service ne doit être responsable que d'une seule fonction ou d'un seul domaine d'activité. Chaque service doit avoir des définitions et des limites claires et se concentrer uniquement sur son propre domaine d'activité spécifique.

2. Autonomie du service : l'autonomie du service signifie que chaque microservice doit avoir un degré élevé d'autonomie, c'est-à-dire que chaque service doit pouvoir être développé, testé de manière indépendante, construit de manière indépendante, déployé et exploité de manière indépendante.

3. Dépendance à sens unique

Il doit y avoir une dépendance unidirectionnelle entre les microservices, et les dépendances circulaires et bidirectionnelles sont strictement interdites.

Dépendance circulaire : A->B->C->A

Dépendance bidirectionnelle : A->B,B->A

Exemple:

1. Liste de commande

2. Liste des produits

Service de commande : fournissez l'identifiant de la commande et obtenez les détails de la commande

Service produit : renvoyer les détails du produit en fonction de l'ID du produit

Lorsque vous interrogez des informations sur une commande, obtenez les détails du produit en fonction de l'ID de produit dans la commande.

accomplir:

Idée d'implémentation : le service de commande envoie une requête http au service produit-service, fusionne le résultat renvoyé avec le résultat de la commande et le renvoie à l'appelant.

Méthode d'implémentation : utilisation de RestTemplate fourni par Spring

1. Définir RestTemplate

@Configuration

classe publique BeanConfig{
@Haricot

Modèle de repos public Modèle de repos {

renvoyer un nouveau RestTemplate();

      }

}

2. Utilisez restTemplate dans le contrôleur de commande

RestTemplate :

Repos(Concernantprésentationnel STémoigner Tranfer) représente le transfert de l'état des ressources de la couche

Ressources : les données sur Internet, telles que les images, les vidéos, les textes, etc. sont autant de ressources

Couche de présentation : la forme de représentation des ressources (par exemple, la forme de représentation du texte est txt, la forme de représentation de l'image est jpg, et certaines ressources sont exprimées en json, xml ou binaire, etc.)

Transfert d'état : lorsque nous accédons à des ressources via le réseau et exécutons (ajoutons, modifions, supprimons, etc.) les ressources, l'état de la ressource change. Pour le dire simplement : REST décrit une forme d'interaction entre le client et le serveur. le réseau. REST lui-même n'est pas pratique, en utilisant la façon de concevoir l'API RESTful (interface réseau de style REST).

Le style reposant présente généralement les caractéristiques suivantes :

1. Ressources

2. Interface unifiée : Pour les opérations sur les ressources, comme l'obtention, la création, la modification et la suppression, ces fenêtres correspondent aux méthodes GET, POST, PUT et DELETE fournies par le protocole http Autrement dit, si vous utilisez une interface de style RESTful. , depuis l'interface Vous pouvez uniquement localiser ses ressources, mais vous n'avez aucun moyen de savoir quelles opérations il a effectuées. Vous devez savoir précisément quelles opérations ont eu lieu et en juger à partir du type de méthode de requête http (par exemple : la même URL). : GET/blog/{blogId } : requête blog DELETE/blog/{blogId} Supprimer le blog)

Inconvénients de l'API RESTful :

1. La méthode d'opération est lourde. L'API RESTful distingue généralement les actions d'opération sur les ressources en fonction de GET, POST, PUT et DELETE.
La méthode HTTP ne peut pas être observée directement et doit être observée via des outils tels que la capture de paquets. Elle sera plus intuitive si l'action est placée sur l'URL.
C’est plus propice à la compréhension et à la communication en équipe.
2. Certains navigateurs ne sont pas très conviviaux pour prendre en charge les requêtes autres que GET et POST et nécessitent un traitement supplémentaire.
3. Accent excessif sur les ressources. Cependant, les besoins réels de l'entreprise peuvent être plus complexes et ils ne peuvent pas être satisfaits simplement en ajoutant, supprimant, modifiant et recherchant une utilisation forcée.
L'API RESTful augmentera la difficulté et le coût du développement.

Il y a un problème avec le projet
1. Lors d'un appel à distance, l'IP et le numéro de port de l'URL sont codés en dur (http://127.0.0.1:9090/product/). Si vous changez l'IP, vous devez modifier le code.
code
2. Comment l'appelant peut-il ne pas se fier à l'adresse IP du fournisseur de services ?
3. Déploiement multi-machines, comment partager la pression ?
4. Lors d'appels à distance, il est très facile d'écrire une mauvaise URL et la réutilisabilité n'est pas élevée. Comment mettre en œuvre des appels à distance avec élégance ?
5. Tous les services peuvent appeler cette interface. Y a-t-il des risques ?