Maison  >  Article  >  développement back-end  >  Que sont les microservices PHP

Que sont les microservices PHP

王林
王林original
2019-09-18 17:57:046713parcourir

Que sont les microservices PHP

Que sont les microservices ?

Le microservice consiste à diviser un système complet en sous-systèmes indépendants en fonction des fonctions commerciales. Dans la structure du microservice, chaque sous-système est appelé "service". Ces sous-systèmes peuvent s'exécuter indépendamment dans des conteneurs Web et communiquer entre eux via RPC.

Par exemple, supposons que vous ayez besoin de développer un centre commercial en ligne. Selon l'idée des microservices, nous devons le diviser en plusieurs services indépendants selon des modules fonctionnels, tels que : les services utilisateurs, les services produits, les services de commande, les services de gestion backend, les services d'analyse de données, etc. Chacun de ces services est un projet indépendant et peut être exécuté de manière indépendante. S'il existe des dépendances entre les services, ils sont appelés via RPC.

Avantages :

1. Le couplage entre les systèmes est considérablement réduit et ils peuvent être développés, déployés et testés indépendamment. Les frontières entre les systèmes sont très claires, le débogage devient assez simple et l'efficacité du développement est grandement améliorée.

2. Le couplage entre les systèmes est réduit, ce qui facilite l'extension du système. Nous pouvons étendre certains services de manière ciblée. Supposons que ce centre commercial fasse l'objet d'une promotion importante et que le volume des commandes puisse augmenter considérablement. Par conséquent, nous pouvons augmenter le nombre de nœuds dans le système de commande et le système de produits de manière ciblée. , le nombre de nœuds reste le même.

3. La réutilisabilité des services est plus élevée. Par exemple, lorsque nous utilisons le système utilisateur en tant que service distinct, tous les produits de l'entreprise peuvent utiliser ce système comme système utilisateur sans développement répété.

Ensuite, le problème survient. Lorsqu'une structure de microservices est adoptée, un système complet peut être composé de nombreux sous-systèmes indépendants. Lorsque le volume d'affaires se développe progressivement, la relation entre ces sous-systèmes sera également complexe. Pour augmenter la capacité de traitement de certains services de manière ciblée, certains services peuvent s'appuyer sur un modèle de cluster composé de plusieurs nœuds, ce qui augmente sans aucun doute considérablement la difficulté d'exploitation et de maintenance. L'idée des microservices est bonne, mais la complexité du développement, de l'exploitation et de la maintenance est trop élevée. Afin de résoudre ces problèmes, Dubbo d’Alibaba est né.

Dubbo

Dubbo est le coordinateur d'un système de microservices Dans son système, il existe trois types Les rôles sont : service. fournisseur (ci-après dénommé fournisseur), consommateur de services (ci-après dénommé consommateur) et centre d'enregistrement.

Vous devez introduire le package jar de Dubbo dans votre projet lorsque vous l'utilisez, c'est-à-dire que chaque service doit introduire le package jar de Dubbo. Ensuite, lorsque ces services seront initialisés, Dubbo enverra les services qui doivent être publiés par le système actuel, ainsi que l'IP et le numéro de port du système actuel au centre d'enregistrement, et le centre d'enregistrement les enregistrera. Il s'agit du processus de publication de services. Parallèlement, lors de l'initialisation du système, Dubbo scannera également les services qui doivent être référencés par le système actuel, puis demandera l'IP et les numéros de port de ces services au centre d'enregistrement. Le système peut alors fonctionner normalement. Lorsque le système A doit appeler le service du système B, A établira un canal RPC avec B, puis appellera le service correspondant sur le système B.

Tutoriel recommandé : Tutoriel vidéo PHP

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn