Panggilan Prosedur Jauh (RPC)
Laksanakan fungsi pada nod jauh menggunakan RPC, sekali gus membolehkan pengiraan teragih dan pemanggilan perkhidmatan merentas gugusan
Panggilan Prosedur Jauh (RPC) ialah pelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP merangkumi sejumlah 4 pelajaran.
Apakah Panggilan Prosedur Jauh?
Bayangkan anda mempunyai dua atur cara Erlang yang berjalan pada mesin yang berbeza, atau pada mesin yang sama tetapi dalam "nod" Erlang yang berasingan. Bagaimanakah atur cara tersebut berkomunikasi?
Panggilan Prosedur Jauh (RPC) ialah cara untuk satu atur cara (klien) meminta atur cara lain (pelayan) melaksanakan fungsi, sama seperti memanggil fungsi tempatan. Klien tidak perlu mengetahui butiran komunikasi rangkaian.
Modul RPC Terbina dalam Erlang
Erlang memudahkan pengkomputeran teragih dengan modul rpc terbina dalamnya. Modul ini menyediakan fungsi untuk memanggil atau menghantar pengiraan pada nod Erlang jauh.
rpc:call/4: Untuk panggilan segerak, iaitu klien menunggu balasan.rpc:cast/4: Untuk panggilan tak segerak, iaitu klien tidak menunggu balasan.
Ini ialah alat yang berkuasa untuk membina aplikasi teragih.
Menyediakan RPC
Sebelum kita boleh menggunakan RPC, kita memerlukan sekurang-kurangnya dua nod Erlang yang bersambung. Setiap nod memerlukan nama dan kuki yang dikongsi untuk pengesahan.
Buka dua tetingkap terminal berasingan dan mulakan nod Erlang seperti berikut:
- Nod 1:
erl -sname server_node -setcookie mysecret - Nod 2:
erl -sname client_node -setcookie mysecret
Pastikan kedua-duanya boleh melakukan ping antara satu sama lain: net_adm:ping(server_node@yourhostname).
RPC Segerak dengan `rpc:call/4`
Fungsi rpc:call/4 digunakan apabila anda memerlukan jawapan segera daripada nod jauh. Fungsi ini menerima empat argumen:
Node: Nama nod Erlang jauh.Module: Modul pada nod jauh tempat fungsi itu berada.Function: Nama fungsi yang hendak dilaksanakan.Args: Senarai argumen untuk fungsi tersebut.
Proses yang membuat panggilan akan disekat sehingga menerima balasan atau ralat.
Contoh Panggilan RPC: Modul Pelayan
Mari cipta modul ringkas math_server.erl. Simpan kod ini dan susun pada server_node:
1. Simpan sebagai math_server.erl
2. Susun pada server_node: c(math_server).
-module(math_server).
-export([add/2, multiply/2]).
add(A, B) ->
A + B.
multiply(A, B) ->
A * B.Contoh Panggilan RPC: Interaksi Klien
Sekarang, daripada client_node, kita boleh memanggil fungsi math_server:add/2 dari jauh! Ingat untuk menggantikan yourhostname dengan nama hos sebenar mesin anda.
Taipkan ini dalam cangkerang Erlang client_node:
rpc:call(server_node@yourhostname, math_server, add, [10, 5]).Memahami Hasil RPC
Apabila anda melaksanakan rpc:call/4, Erlang menguruskan komunikasi rangkaian untuk anda. Hasil panggilan fungsi jauh dikembalikan terus kepada proses yang membuat panggilan.
Jika nod jauh tidak wujud, modul belum dimuatkan atau fungsi mengalami kerosakan, rpc:call/4 akan mengembalikan tupel ralat seperti {badrpc, Reason}. Ini membantu anda mengurus masalah yang mungkin berlaku dalam sistem teragih anda.
RPC Tak Segerak dengan `rpc:cast/4`
Kadangkala anda tidak memerlukan respons segera daripada panggilan jauh. Anda hanya mahu menghantar permintaan dan meneruskan kerja. Di sinilah rpc:cast/4 digunakan.
rpc:cast/4 berfungsi sama seperti rpc:call/4, tetapi ia merupakan operasi "hantar dan lupakan". Klien menghantar mesej dan tidak menunggu balasan, menjadikannya tidak menyekat.
Contoh RPC Cast: Modul Logger
Mari cipta modul logger ringkas. Simpan ini sebagai logger.erl dan susun pada server_node:
1. Simpan sebagai logger.erl
2. Susun pada server_node: c(logger).
-module(logger).
-export([log_message/1]).
log_message(Message) ->
io:format("~p: Remote log: ~p~n", [self(), Message]).Contoh RPC Cast: Interaksi Klien
Sekarang, daripada client_node, gunakan rpc:cast/4 untuk menghantar mesej log kepada server_node. Perhatikan bahawa client_node tidak menunggu respons.
Taipkan ini dalam cangkerang Erlang client_node (gantikan yourhostname):
Anda akan melihat mesej log muncul pada konsol server_node!
rpc:cast(server_node@yourhostname, logger, log_message, ["Hello from client!"]).Semakan Pantas RPC
Anda telah mempelajari tentang panggilan prosedur jauh yang segerak dan tak segerak dalam Erlang.
Imbas Kembali: RPC untuk Erlang Teragih
Dalam pelajaran ini, anda meneroka cara modul rpc terbina dalam Erlang membolehkan pelaksanaan fungsi yang lancar merentasi nod yang berbeza.
- Kita mempelajari
rpc:call/4untuk panggilan segerak dan menyekat apabila hasil diperlukan. - Kita juga membincangkan
rpc:cast/4untuk panggilan tak segerak dan tidak menyekat apabila balasan segera tidak diperlukan. - Menyediakan nod yang bersambung dengan kuki yang dikongsi adalah penting supaya RPC dapat berfungsi.
RPC memudahkan pengaturcaraan teragih, membolehkan anda membina aplikasi yang memanfaatkan berbilang nod Erlang dengan mudah.
Pelajari Erlang dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Panggilan Prosedur Jauh (RPC)” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP, termasuk “Panggilan Prosedur Jauh (RPC)”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Panggilan Prosedur Jauh (RPC)”?
Laksanakan fungsi pada nod jauh menggunakan RPC, sekali gus membolehkan pengiraan teragih dan pemanggilan perkhidmatan merentas gugusan Anda berlatih Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Panggilan Prosedur Jauh (RPC)” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP ini?
Ya. Setiap pelajaran Pengaturcaraan Sistem Teragih dan Tahan terhadap Kegagalan dengan Erlang OTP menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Komunikasi dan Persediaan Nod
- Panggilan Prosedur Jauh (RPC)
- Pendaftaran Proses Global
- Keselamatan Pengagihan dan Kuki