Dengan perkembangan berterusan teknologi Internet, seni bina yang diedarkan telah menjadi asas kepada aplikasi Internet moden. Dalam sistem teragih, protokol panggilan prosedur jauh (RPC) adalah cara penting untuk mencapai komunikasi antara komponen. Artikel ini akan memperkenalkan cara menggunakan Node.js untuk melaksanakan RPC untuk membantu pembangun membina aplikasi yang diedarkan dengan lebih pantas dan lebih mudah.
1. Pengenalan kepada RPC
RPC, nama penuh ialah Remote Procedure Call, yang bermaksud panggilan prosedur jauh. Ia melaksanakan panggilan program antara komputer yang berbeza melalui panggilan rangkaian, membuat panggilan program sama seperti memanggil fungsi tempatan, melindungi butiran penghantaran rangkaian asas, membolehkan pembangun menumpukan lebih pada pelaksanaan logik perniagaan.
Protokol RPC tradisional dilaksanakan berdasarkan protokol binari, termasuk Jimat, Avro, Penampan Protokol, dsb. Protokol ini biasanya menggunakan IDL untuk menerangkan antara muka, dan kemudian menggunakan alat penjanaan kod untuk menjana kod klien dan pelayan yang sepadan, supaya pelanggan boleh memanggil antara muka semudah memanggil fungsi tempatan.
Dalam Node.js, kita boleh menggunakan protokol JSON-RPC untuk melaksanakan panggilan RPC. JSON-RPC ialah protokol panggilan prosedur jauh yang ringan dan pantas berdasarkan pengekodan JSON Ia ringan dan bebas bahasa, jadi ia sangat popular dalam aplikasi web.
2. Gunakan Node.js untuk melaksanakan RPC
Dalam Node.js, kita boleh menggunakan perisian tengah json-rpc2 untuk melaksanakan RPC. Perisian tengah ini ialah modul Node.js yang melaksanakan protokol JSON-RPC 2.0 Ia boleh menulis dan memanggil API JSON-RPC dengan mudah dalam persekitaran Node.js. Di bawah, kami akan memperkenalkan cara menggunakan perisian tengah ini untuk melaksanakan panggilan RPC.
1. Pasang dependensi
Kita perlu memasang pakej dependensi json-rpc2. Masukkan arahan berikut pada baris arahan:
npm install json-rpc2 --save
2. Cipta kod sisi pelayan
Kita perlu buat kod sisi pelayan, fungsinya adalah untuk menerima permintaan pelanggan, menghuraikan meminta dan melaksanakan operasi yang sepadan, dan mengembalikan hasilnya kepada pelanggan.
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');
Kod di atas melaksanakan pelayan RPC mudah. Kami mentakrifkan dua API: add
dan sub
, yang masing-masing melaksanakan operasi tambah dan tolak. Kami mencipta pelayan menggunakan jsonrpc.Server.$create()
, mentakrifkan kaedah add
dan sub
dan mendengar port 8000 melalui kaedah listen()
, menunggu permintaan pelanggan.
3. Cipta kod pelanggan
Selepas kod bahagian pelayan dibuat, kita perlu mencipta kod pelanggan yang boleh membuat permintaan kepada pelayan dan mendapatkan hasil respons.
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); });
Kod di atas melaksanakan klien Node.js yang mudah dan mencipta klien melalui kaedah Client.$create()
. Kami menggunakan kaedah call()
untuk mengeluarkan permintaan add
dan sub
masing-masing kepada pelayan, dan menggunakan fungsi panggil balik untuk mendapatkan hasil respons dan mencetak output.
4. Program ujian
Kami menyimpan dua coretan kod di atas sebagai fail server.js dan client.js, dan laksanakan arahan berikut untuk memulakan pelayan dan klien:
rreeeKemudian laksanakan arahan berikut dalam baris arahan baharu:
node server.js
Hasil keluaran hendaklah 3 dan 2, sepadan dengan pengiraan penambahan dan penolakan masing-masing.
3. Ringkasan
Artikel ini memperkenalkan cara menggunakan Node.js untuk melaksanakan panggilan RPC, membantu pembangun membina aplikasi yang diedarkan dengan lebih pantas dan lebih mudah. Dalam proses pembangunan sebenar, kita perlu memberi perhatian untuk memisahkan lapisan aplikasi daripada lapisan protokol, mengabstraksi antara muka API, dan memastikan kebolehpercayaan dan kestabilan perkhidmatan. Selain itu, kami juga perlu mempertimbangkan isu keselamatan RPC, termasuk pengesahan, penyulitan komunikasi, dsb., untuk memastikan keselamatan dan kebolehpercayaan panggilan RPC.
Atas ialah kandungan terperinci nodejs melaksanakan rpc. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!