Maison Problème commun Que sont les middlewares RPC ?

Que sont les middlewares RPC ?

Jan 07, 2020 am 09:34 AM
rpc 中间件

Que sont les middlewares RPC ?

1. Intergiciel de messages

La technologie de file d'attente de messages est une technologie d'échange d'informations entre des applications distribuées. Les files d'attente de messages peuvent résider en mémoire ou sur disque, et la file d'attente stocke les messages jusqu'à ce qu'ils soient lus par l'application. Avec les files d'attente de messages, les applications peuvent s'exécuter indépendamment : elles n'ont pas besoin de connaître l'emplacement de chacune ou d'attendre que le programme récepteur reçoive le message avant de poursuivre l'exécution.

En général, le middleware de messages a les fonctions suivantes : réduction du couplage, réduction des pics de trafic, communication asynchrone et transmission fiable

1 Réduire le couplage : couplage lâche via la publication et l'abonnement

<.>Nous prenons l'exemple de l'inscription. Si l'inscription réussit, des SMS et des e-mails seront envoyés à l'utilisateur pour confirmation. Le modèle d'architecture traditionnel est le suivant :

Que sont les middlewares RPC ?<.>Email Business et SMS Business Le code est écrit dans le processus d'enregistrement de l'utilisateur. Qu'il soit mis en œuvre via une interface ou un appel à distance, le degré de couplage est désormais très élevé. Une nouvelle exigence est ajoutée une fois l'enregistrement de l'utilisateur terminé. , les e-mails ne seront pas envoyés. Il s'agit d'"augmenter les points" pour les utilisateurs. Analysons ces situations :

Tout d'abord, le traitement commercial après une inscription réussie est implémenté dans un système commercial via l'accumulation de code et l'appel d'interface. besoin Pour changer le code d'enregistrement, vous devez démarrer et arrêter l'application lors de la connexion. Cette méthode a le plus haut degré de couplage.

Deuxièmement, grâce aux appels à distance, lorsque nous voulons ajouter un nouveau traitement métier, nous devons toujours modifier le code du processus principal, ce qui provoque inévitablement le démarrage et l'arrêt de l'application.

Si nous introduisons un middleware de messages, comme suit :

Que sont les middlewares RPC ?En publiant et en vous abonnant, une fois l'utilisateur inscrit avec succès, envoyez un message au middleware de messages, chacun Le côté commercial s'abonne aux messages du même canal et exécute l'activité correspondante après avoir reçu le message d'enregistrement réussi. Avec l'ajout de "Ajouter des points", il suffit au système de points de gérer le traitement correspondant et de s'abonner à ce message. Il n'est pas nécessaire de modifier le code professionnel de l'utilisateur ni de démarrer ou d'arrêter l'application, et l'expansion en douceur de l'application est assurée. les affaires peuvent être réalisées.

2. Communication asynchrone

En reprenant l'exemple ci-dessus, dans l'architecture traditionnelle, lorsque l'enregistrement de l'utilisateur est terminé et que l'e-mail SMS est envoyé, le client est renvoyé pour informer l'utilisateur que l'enregistrement est réussi. Après avoir utilisé le middleware de message, une fois que l'utilisateur a soumis les informations d'enregistrement et que le traitement est terminé, l'utilisateur peut être invité à s'inscrire avec succès. Les services SMS et les services de messagerie suivants recevront le message de réussite de l'enregistrement de l'utilisateur du canal abonné avant d'envoyer des messages SMS et. les emails. Il n’y a plus besoin de contraintes mutuelles entre entreprises.

3. Réduction des pics de trafic et prévention des surtensions

Le middleware de messages peut accumuler des messages pendant les heures de pointe, et une fois le pic passé, le système en aval consomme lentement les messages pour résoudre le problème des pics de trafic.

Lorsque la concurrence atteint son apogée, la pression sur le système back-end est généralement très élevée. Qu'il s'agisse d'un serveur d'applications ou d'un serveur de base de données, à ce moment, des requêtes similaires peuvent être placées dans la file d'attente des messages. du middleware des messages et accumulés lentement pour le traitement. Vous pouvez également définir la taille de la file d'attente des messages pour contrôler le degré de concurrence. Le scénario commercial des ventes flash de produits est relativement typique.

4. Transmission fiable

La communication basée sur les messages est fiable et les messages ne seront pas perdus. La plupart des middlewares de messagerie offrent la fonctionnalité permettant de conserver les messages sur le disque. Dans le premier scénario, au début, le middleware de messages peut conserver les messages produits par le producteur sur le disque. L'application back-end tombe en panne, mais les messages ne sont pas perdus et l'application est redémarrée pour poursuivre le traitement.

Vous vous posez peut-être cette question : si le middleware des messages est en panne, comment peut-il être conservé si le message ne peut pas être reçu ? Peu importe, le middleware de messages fournit une variété de stratégies de réplication de messages, de stratégies de persistance, de stratégies de déploiement de cluster, etc., qui peuvent garantir une transmission fiable des messages.

2. Mode middleware de messages

Que sont les middlewares RPC ?

Que sont les middlewares RPC ?

3. Middleware de messages couramment utilisé

RabbitMQ

1. Fonctionnalités de RabbitMQ :

RabbitMQ est un open source. implémentation des sources basée sur le standard AMQP développé en langage Erlang. RabbitMQ est originaire des systèmes financiers et est utilisé pour stocker et transférer des messages dans des systèmes distribués. Il fonctionne bien en termes de facilité d'utilisation, d'évolutivité et de haute disponibilité. Ses caractéristiques spécifiques incluent :

Fiabilité

Routage flexible

Prend en charge le cluster de messages

Haute disponibilité

Prend en charge plusieurs protocoles (en plus de prendre en charge le protocole AMQP, il prend également en charge d'autres protocoles de file d'attente de messages via des plug-ins, tels que STOMP et MQTT)

Prise en charge des clients multilingues

Fournir une interface de gestion

Fournir un mécanisme de suivi

Fournir un mécanisme de plug-in (RabbitMQ fournit de nombreux plug-ins et vous pouvez écrivez également vos propres plug-ins)

Résumé :

Le plus grand avantage de RabbitMQ est qu'il fournit une stratégie de routage des messages relativement flexible, une haute disponibilité, une fiabilité, des plug-ins riches, des plates-formes multiples support et documentation complète. Cependant, en raison du protocole AMQP lui-même, sa mise en œuvre est relativement lourde, ce qui désavantage son débit par rapport à d'autres MQ (tels que Kafka).

ActiveMQ

1. Fonctionnalités d'ActiveMQ :

ActiveMQ est un middleware de messagerie open source produit par Apache, conçu pour fournir des applications efficaces, évolutives, stables. et sécuriser les communications de messagerie au niveau de l'entreprise. ActiveMQ implémente JMS 1.1 et fournit de nombreuses fonctionnalités supplémentaires, telles que la gestion JMX, la gestion maître-esclave, la communication de groupe de messages, la priorité des messages, la réception retardée des messages, les récepteurs virtuels, la persistance des messages, la surveillance de la file d'attente des messages, etc. Les principales fonctionnalités sont les suivantes :

Prend en charge les clients et les protocoles dans plusieurs langages tels que Java, C, C++, C#, Ruby, Perl, Python, PHP, etc., tels que OpenWire, STOMP, AMQP. et les protocoles MQTT.

Fournit des fonctionnalités avancées telles que la communication de groupe de messages, la priorité des messages, la réception retardée des messages, les récepteurs virtuels et la persistance des messages.

Prend entièrement en charge les spécifications JMS 1.1 et J2EE 1.4 (y compris la persistance, les messages de transaction distribués, les transactions)

Prend en charge le framework Spring, ActiveMQ peut être facilement intégré dans les applications Spring via les fichiers de configuration Spring.

Réussite des tests de serveur J2EE courants, tels que TomEE, Geronimo, JBoss, GlassFish et WebLogic.

Méthodes de connexion diversifiées, ActiveMQ fournit une variété de méthodes de connexion, telles que in-VM, TCP, SSL, NIO, UDP, multicast, JGroups, JXTA.

Prend en charge la persistance rapide des messages grâce à l'utilisation de JDBC et du Journal.

Conçu pour les clusters hautes performances, les communications client-serveur, point à point et d'autres scénarios.

Fournit une interface API REST neutre en termes de technologie et de langage.

Prend en charge l'appel d'ActiveMQ via AJAX.

ActiveMQ peut être facilement intégré aux technologies WebService telles que CXF et Axis pour fournir une messagerie fiable.

peut être utilisé comme fournisseur JMS en mémoire, idéal pour les tests unitaires JMS.

Kafka

1.Caractéristiques de Kafka :

Kafka est un système de messagerie de publication/abonnement distribué d'abord développé par LinkedIn, qui est ensuite devenu le meilleur d'Apache. projet de niveau supérieur. Ses principales fonctionnalités sont les suivantes :

Fournit un haut débit tant pour la publication que pour l'abonnement. (L'objectif de conception de Kafka est de fournir une persistance des messages avec une complexité temporelle de O(1). Il peut garantir des performances d'accès en temps constant, même pour les données supérieures au niveau de la To, et peut le faire même sur des machines commerciales très bon marché. Prend en charge la transmission de 100 000 messages par seconde sur une seule machine)

Persistance des messages. (Conserver les messages sur le disque, ils peuvent donc être utilisés pour la consommation par lots, comme ETL ainsi que pour les applications en temps réel. La perte de données peut être évitée en conservant les données sur le disque dur et en les répliquant.)

Distribué. (Prend en charge le partitionnement des messages et la consommation distribuée entre les serveurs, tout en assurant la transmission séquentielle des messages au sein de chaque partition. Ses producteurs, courtiers et consommateurs internes sont tous des architectures distribuées, ce qui facilite l'expansion vers l'extérieur.)

Consommation de messages adopte le mode Pull. (Le statut du message en cours de traitement est conservé du côté du consommateur, et non du côté du serveur. Le courtier est sans état et le consommateur enregistre lui-même la compensation.)

Prend en charge les scénarios en ligne et hors ligne, ainsi que les deux hors ligne. traitement des données et traitement des données en temps réel.

RocketMQ

1. Caractéristiques de RocketMQ :

RocketMQ est un middleware de messagerie distribué open source par Alibaba en 2012 et ensuite donné à Apache Software Foundation, et est devenu un projet Apache de premier niveau le 25 septembre 2017. En tant que middleware domestique qui a connu de nombreux « super projets » tels que le « Double 11 » d'Alibaba et qui présente des performances stables et exceptionnelles, il a été utilisé par de plus en plus d'utilisateurs nationaux ces dernières années pour ses hautes performances, sa faible latence et sa haute fiabilité. Utilisé par les entreprises. Ses principales caractéristiques sont les suivantes :

Une évolutivité flexible. (RocketMQ prend naturellement en charge les clusters, et chacun de ses quatre composants principaux (NameServer, Broker, Producer et Consumer) peut être mis à l'échelle horizontalement sans un seul point de défaillance.)

A la capacité d'accumuler des messages massifs. (RocketMQ utilise le principe de zéro copie pour obtenir la possibilité d'accumuler des quantités extrêmement importantes de messages. On dit qu'une seule machine peut prendre en charge l'accumulation de centaines de millions de messages, tout en conservant une faible latence d'écriture après avoir accumulé autant de messages. )

Prend en charge les messages séquentiels. (RocketMQ peut garantir que les consommateurs de messages consomment les messages dans l'ordre dans lequel ils sont envoyés. Les messages séquentiels sont divisés en messages ordonnés globalement et en messages ordonnés localement. Il est généralement recommandé d'utiliser des messages ordonnés localement, c'est-à-dire que le producteur envoie un certain type de message afin d'envoyer dans la même file d'attente pour réaliser )

.

Prend en charge plusieurs méthodes de filtrage des messages. (Le filtrage des messages est divisé en filtrage côté serveur et filtrage côté consommateur. Lors du filtrage côté serveur, le filtrage peut être effectué en fonction des exigences des consommateurs de messages. L'avantage est que la transmission de messages inutiles est réduite, et l'inconvénient est que cela augmente la charge sur le serveur de messages. Implémentation Relativement complexe. Le filtrage côté consommateur est entièrement personnalisé par l'application spécifique. L'inconvénient est que de nombreux messages inutiles seront transmis aux consommateurs de messages. 🎜> Prise en charge des messages de transaction. (En plus de prendre en charge les messages ordinaires et les messages séquentiels, RocketMQ prend également en charge les messages de transaction. Cette fonctionnalité fournit une autre solution pour les transactions distribuées.)

Prend en charge la consommation rétroactive. (La consommation rétroactive signifie que les messages qui ont été consommés avec succès par les consommateurs doivent être consommés à nouveau en raison des besoins de l'entreprise. RocketMQ prend en charge la consommation rétroactive en fonction du temps. La dimension temporelle est précise à la milliseconde près et peut être retracée en avant ou en arrière.)

Pour plus de

FAQ

, veuillez visiter le site Web PHP chinois.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution à l'impossibilité de se connecter au serveur RPC et à l'impossibilité d'accéder au bureau Solution à l'impossibilité de se connecter au serveur RPC et à l'impossibilité d'accéder au bureau Feb 18, 2024 am 10:34 AM

Que dois-je faire si le serveur RPC est indisponible et n'est pas accessible sur le bureau Ces dernières années, les ordinateurs et Internet ont pénétré tous les recoins de nos vies. En tant que technologie de calcul centralisé et de partage de ressources, l'appel de procédure à distance (RPC) joue un rôle essentiel dans la communication réseau. Cependant, nous pouvons parfois rencontrer une situation dans laquelle le serveur RPC n'est pas disponible, ce qui entraîne l'impossibilité d'accéder au bureau. Cet article décrit certaines des causes possibles de ce problème et propose des solutions. Tout d’abord, nous devons comprendre pourquoi le serveur RPC n’est pas disponible. Le serveur RPC est un

Quel est le principe du middleware Tomcat Quel est le principe du middleware Tomcat Dec 27, 2023 pm 04:40 PM

Le principe du middleware Tomcat est implémenté sur la base des spécifications Java Servlet et Java EE. En tant que conteneur de servlets, Tomcat est responsable du traitement des requêtes et des réponses HTTP et de la fourniture de l'environnement d'exécution des applications Web. Les principes du middleware Tomcat concernent principalement : 1. Le modèle de conteneur ; 2. L'architecture des composants ; 3. Le mécanisme de traitement des servlets ; 4. L'écoute des événements et les filtres ; 6. La sécurité. technologie 9. Mode intégré, etc.

Comment utiliser le middleware pour la transformation des réponses dans Laravel Comment utiliser le middleware pour la transformation des réponses dans Laravel Nov 03, 2023 am 09:57 AM

Comment utiliser le middleware pour la conversion des réponses dans Laravel Middleware est l'une des fonctionnalités très puissantes et pratiques du framework Laravel. Il nous permet de traiter les demandes et les réponses avant que la demande n'entre dans le contrôleur ou avant que la réponse ne soit envoyée au client. Dans cet article, je vais montrer comment utiliser le middleware pour la transformation des réponses dans Laravel. Avant de commencer, assurez-vous que Laravel est installé et qu'un nouveau projet est créé. Nous allons maintenant suivre ces étapes : Créer un nouveau middleware Ouvrir

Comment utiliser un middleware pour l'accélération des données dans Laravel Comment utiliser un middleware pour l'accélération des données dans Laravel Nov 02, 2023 am 09:40 AM

Comment utiliser le middleware pour l'accélération des données dans Laravel Introduction : Lors du développement d'applications Web à l'aide du framework Laravel, l'accélération des données est la clé pour améliorer les performances des applications. Le middleware est une fonctionnalité importante fournie par Laravel qui gère les requêtes avant qu'elles n'atteignent le contrôleur ou avant que la réponse ne soit renvoyée. Cet article se concentrera sur la façon d'utiliser le middleware pour obtenir une accélération des données dans Laravel et fournira des exemples de code spécifiques. 1. Qu'est-ce qu'un middleware ? Le middleware est un mécanisme dans le framework Laravel.

Comment gérer la validation de formulaire à l'aide d'un middleware dans Laravel Comment gérer la validation de formulaire à l'aide d'un middleware dans Laravel Nov 02, 2023 pm 03:57 PM

Comment utiliser un middleware pour gérer la validation de formulaire dans Laravel, des exemples de code spécifiques sont requis Introduction : Dans Laravel, la validation de formulaire est une tâche très courante. Afin de garantir la validité et la sécurité des données saisies par les utilisateurs, nous vérifions généralement les données soumises dans le formulaire. Laravel fournit une fonction pratique de validation de formulaire et prend également en charge l'utilisation de middleware pour gérer la validation de formulaire. Cet article présentera en détail comment utiliser le middleware pour gérer la validation des formulaires dans Laravel et fournira des exemples de code spécifiques.

Comment utiliser un middleware pour la planification de tâches planifiées dans Laravel Comment utiliser un middleware pour la planification de tâches planifiées dans Laravel Nov 02, 2023 pm 02:26 PM

Comment utiliser un middleware pour la planification de tâches planifiées dans Laravel Introduction : Laravel est un framework open source PHP populaire qui fournit des outils pratiques et puissants pour développer des applications Web. L'une des fonctionnalités importantes concerne les tâches planifiées, qui permettent aux développeurs d'exécuter des tâches spécifiques à des intervalles spécifiés. Dans cet article, nous présenterons comment utiliser le middleware pour implémenter la planification des tâches planifiées de Laravel et fournirons des exemples de code spécifiques. Préparation de l'environnement Avant de commencer, nous devons nous assurer

Analyse de la relation entre la fonction de communication en temps réel PHP et le middleware de transmission de messages Analyse de la relation entre la fonction de communication en temps réel PHP et le middleware de transmission de messages Aug 10, 2023 pm 12:42 PM

Analyse de la relation entre la fonction de communication en temps réel PHP et le middleware de transmission de messages Avec le développement d'Internet, l'importance de la fonction de communication en temps réel dans les applications Web est devenue de plus en plus importante. La communication en temps réel permet aux utilisateurs d'envoyer et de recevoir des messages en temps réel dans les applications et peut être appliquée à divers scénarios, tels que le chat en temps réel, la notification instantanée, etc. Dans le domaine de PHP, il existe de nombreuses façons d'implémenter des fonctions de communication en temps réel, et l'une des méthodes les plus courantes consiste à utiliser un middleware de transmission de messages. Cet article présentera la relation entre la fonction de communication en temps réel PHP et le middleware de push de messages, et comment utiliser le push de messages.

Comment utiliser un middleware pour configurer le partage de ressources entre domaines (CORS) dans le framework Slim Comment utiliser un middleware pour configurer le partage de ressources entre domaines (CORS) dans le framework Slim Jul 30, 2023 pm 08:34 PM

Comment configurer le partage de ressources Cross-Origin (CORS) à l'aide d'un middleware dans le framework Slim Le partage de ressources Cross-Origin (CORS) est un mécanisme qui permet au serveur de définir des informations supplémentaires dans l'en-tête de réponse HTTP pour indiquer au navigateur si Autoriser le partage de ressources Cross-Origin. -demandes de domaine. Dans certains projets avec séparation front-end et back-end, le mécanisme CORS peut être utilisé pour réaliser la requête inter-domaines du front-end pour l'interface back-end. Lors de l'utilisation du framework Slim pour développer l'API REST, nous pouvons utiliser un middleware (Middleware)