nodejs implémente rpc

PHPz
Libérer: 2023-05-18 09:21:37
original
1198 Les gens l'ont consulté

Avec le développement continu de la technologie Internet, l'architecture distribuée est devenue le fondement des applications Internet modernes. Dans les systèmes distribués, le protocole d'appel de procédure à distance (RPC) est un moyen important d'établir la communication entre les composants. Cet article explique comment utiliser Node.js pour implémenter RPC afin d'aider les développeurs à créer des applications distribuées plus rapidement et plus facilement.

1. Introduction à RPC

RPC, le nom complet est Remote Procedure Call, ce qui signifie appel de procédure à distance. Il implémente des appels de programme entre différents ordinateurs via des appels réseau, effectuant des appels de programme tout comme des fonctions locales, protégeant les détails de transmission réseau sous-jacents, permettant aux développeurs de se concentrer davantage sur la mise en œuvre de la logique métier.

Les protocoles RPC traditionnels sont implémentés sur la base de protocoles binaires, notamment Thrift, Avro, Protocol Buffer, etc. Ces protocoles utilisent généralement IDL pour décrire l'interface, puis utilisent des outils de génération de code pour générer les codes correspondants côté client et serveur, afin que le client puisse appeler l'interface aussi facilement qu'une fonction locale.

Dans Node.js, nous pouvons utiliser le protocole JSON-RPC pour implémenter les appels RPC. JSON-RPC est un protocole d'appel de procédure à distance léger et rapide basé sur le codage JSON. Il est léger et indépendant du langage, il est donc très populaire dans les applications Web.

2. Utilisez Node.js pour implémenter RPC

Dans Node.js, nous pouvons utiliser le middleware json-rpc2 pour implémenter RPC. Ce middleware est un module Node.js qui implémente le protocole JSON-RPC 2.0. Il peut facilement écrire et appeler l'API JSON-RPC dans l'environnement Node.js. Ci-dessous, nous expliquerons comment utiliser ce middleware pour implémenter les appels RPC.

1. Installer les dépendances

Nous devons d'abord installer le package de dépendances json-rpc2. Entrez la commande suivante dans la ligne de commande :

npm install json-rpc2 --save
Copier après la connexion

2. Créer du code côté serveur

Nous devons créer un code côté serveur, dont le rôle est d'accepter la demande du client, d'effectuer l'opération correspondante après avoir analysé la demande, et renvoyer le résultat au client.

const jsonrpc = require('json-rpc2');

const server = jsonrpc.Server.$create({
  'add': function(params, ret) {
    ret(null, params[0] + params[1]);
  },
  'sub': function(params, ret) {
    ret(null, params[0] - params[1]);
  },
});

server.listen(8000, 'localhost');
Copier après la connexion

Le code ci-dessus implémente un simple serveur RPC. Nous définissons deux API : add et sub, qui implémentent respectivement les opérations d'addition et de soustraction. Nous utilisons jsonrpc.Server.$create() pour créer un serveur, définir les méthodes add et sub, et transmettre listen Le () écoute le port 8000 et attend les demandes des clients. addsub,它们分别实现了加法和减法运算。我们使用jsonrpc.Server.$create()创建了一个服务器,并定义了addsub方法,并通过listen()方法监听了8000端口,等待客户端的请求。

3.创建客户端代码

在服务器端代码创建完成后,我们需要创建一个客户端代码,它可以向服务器端发出请求并获取响应结果。

const jsonrpc = require('json-rpc2');

const client = jsonrpc.Client.$create(8000, 'localhost');

client.call('add', [1, 2], function(err, result) {
  console.log(result);
});

client.call('sub', [5, 3], function(err, result) {
  console.log(result);
});
Copier après la connexion

以上代码实现了一个简单的Node.js客户端,并通过Client.$create()方法创建了一个客户端。我们使用call()方法分别向服务器发出addsub

3. Créer un code client

Une fois le code côté serveur créé, nous devons créer un code client qui peut adresser des requêtes au serveur et obtenir les résultats de la réponse.

node server.js
Copier après la connexion

Le code ci-dessus implémente un simple client Node.js et crée un client via la méthode Client.$create(). Nous utilisons la méthode call() pour émettre respectivement les requêtes add et sub au serveur, et utilisons la fonction de rappel pour obtenir le résultat de la réponse et imprimer la sortie.

4. Programme de test

Nous enregistrons les deux extraits de code ci-dessus sous forme de fichiers server.js et client.js, exécutons les commandes suivantes pour démarrer le serveur et le client :

node client.js
Copier après la connexion
Ensuite, exécutez les commandes suivantes dans une nouvelle ligne de commande : Les résultats de sortie de

rrreee

devraient être 3 et 2, correspondant respectivement aux calculs d'addition et de soustraction. 🎜🎜3. Résumé🎜🎜Cet article explique comment utiliser Node.js pour implémenter des appels RPC, aidant ainsi les développeurs à créer des applications distribuées plus rapidement et plus facilement. Dans le processus de développement actuel, nous devons veiller à séparer la couche application de la couche protocole, à abstraire l'interface API et à garantir la fiabilité et la stabilité du service. En outre, nous devons également prendre en compte les problèmes de sécurité RPC, notamment l'authentification, le cryptage des communications, etc., pour garantir la sécurité et la fiabilité des appels RPC. 🎜

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!