RPC framework và Apache Thrift là gì?


99

Tôi cần học Apache Thrift cho một dự án Đại học. Như hướng dẫn này đã nói, nó là một khung công tác RPC và đó là tài liệu duy nhất tôi có thể tìm thấy cho Thrift ngoài tài liệu của họ .

Ai đó có thể cho tôi biết khung công tác RPC là gì và điều này liên quan như thế nào đến Apache Thrift?

Câu trả lời:


158

Một khuôn khổ RPC nói chung là một bộ công cụ cho phép các lập trình viên để gọi một đoạn mã trong một quá trình từ xa, có thể là trên một máy khác nhau hoặc chỉ là một quá trình trên cùng một máy.

Trong trường hợp cụ thể của Apache Thrift , chúng ta nói về một khuôn khổ được thiết kế để hiệu quả và khả dụng trên cả nền tảng hệ điều hành và ngôn ngữ lập trình. Ngoài ra, bạn có một số tính linh hoạt liên quan đến truyền tải (chẳng hạn như ổ cắm, đường ống, v.v.) và giao thức (nhị phân, JSON, thậm chí được nén), cộng với một số tùy chọn khác như hỗ trợ SSL hoặc SASL.

Ví dụ: bạn có thể thiết lập một máy chủ trên máy Linux, được viết bằng C ++ cung cấp một số dịch vụ cho thế giới thông qua giao thức dựa trên JSON qua HTTP. Dịch vụ này có thể được gọi bởi một chương trình khách được viết bằng Python, chạy trên máy Windows. Mã cho cả máy chủ và máy khách được tạo từ tệp Thrift IDL. Để làm cho nó chạy, về cơ bản bạn chỉ phải thêm logic chương trình dự định và ghép tất cả các phần lại với nhau.

Tài liệu tham khảo tốt nhất cho Apache Thrift vẫn là Sách trắng của Apache Thrift . Mặc dù hơi lỗi thời ở một số chi tiết, các khái niệm cơ bản vẫn còn giá trị. Một cuốn sách hay khác là "Hướng dẫn bỏ lỡ" của Diwaker Gupta , và cuối cùng là cuốn sách sắp xuất bản của Randy Abernethy .

Đối với người mới bắt đầu, tôi khuyên bạn nên bắt đầu với bộ hướng dẫn Apache Thrift , những ví dụ này cho thấy rất nhiều tính năng cốt lõi. Nếu bạn có thắc mắc, bạn có thể hỏi tại đây trên SO, hoặc trên danh sách gửi thư Tiết kiệm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.