Apa itu kerangka kerja RPC dan Apache Thrift?


100

Saya perlu belajar Apache Thrift untuk proyek Universitas. Seperti yang dikatakan tutorial ini , ini adalah kerangka kerja RPC, dan itu adalah satu-satunya dokumen yang dapat saya temukan untuk Thrift selain dokumentasi mereka .

Dapatkah seseorang memberi tahu saya apa itu kerangka kerja RPC dan bagaimana kaitannya dengan Apache Thrift?

Jawaban:


158

Sebuah kerangka RPC secara umum adalah satu set alat yang memungkinkan programmer untuk memanggil sepotong kode dalam proses remote, baik itu pada mesin yang berbeda atau hanya proses lain pada mesin yang sama.

Dalam kasus khusus Apache Thrift , kita berbicara tentang kerangka kerja yang dirancang agar efisien, dan tersedia di seluruh platform OS dan bahasa pemrograman. Selain itu, Anda memiliki beberapa fleksibilitas terkait transport (seperti soket, pipa, dll) dan protokol (biner, JSON, bahkan dikompresi), ditambah beberapa opsi lainnya seperti dukungan SSL atau SASL.

Misalnya , Anda dapat menyiapkan server di mesin Linux, ditulis dalam C ++ yang menawarkan beberapa layanan ke dunia melalui protokol berbasis JSON melalui HTTP. Layanan ini dapat dipanggil oleh program klien yang ditulis dengan Python, yang dijalankan pada mesin Windows. Kode untuk server dan klien dihasilkan dari file IDL Hemat. Untuk menjalankannya, pada dasarnya Anda hanya perlu menambahkan logika program yang dimaksudkan dan menggabungkan semua bagian.

Referensi terbaik tunggal untuk Apache Thrift masih Buku Putih Apache Thrift . Meski agak ketinggalan jaman dalam beberapa detail, konsep bawahan masih berlaku. Bacaan bagus lainnya adalah "Panduan Hilang" Diwaker Gupta , dan terakhir tidak sedikit buku yang akan datang dari Randy Abernethy .

Untuk pemula, saya akan merekomendasikan untuk memulai dengan paket tutorial Apache Thrift , contoh ini menunjukkan banyak fitur inti. Jika Anda memiliki pertanyaan, Anda dapat bertanya di sini di SO, atau di milis Thrift.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.