Giới thiệu về GRPC

Bài viết trước đó mình có giới thiệu về microservices và 3 cách giao tiếp giữa các services, bạn có thể tìm đọc lại tại đây

RPC là một trong số 3 cách giao tiếp đó và bài viết này mình sẽ nói chi tiết hơn và cách thực hiện hóa nó nhé!

Đầu tiên cùng mình đặt vấn đề một chút. Microservices thực tế chỉ là các thành phần được phân chia và chạy một cách độc lập với nhau, nó có tên kỹ thuật một chút là service mà thôi. Trước đó thì bạn có thể thấy các máy tính được kết nối với nhau thông qua mạng LAN (Cái mạng mà bạn nối dây từ máy nọ sang máy kia ý), rộng hơn một chút là mạng internet, ừ thì không cần dây nhưng bạn vẫn kết nối được các máy với nhau từ xa thông qua chúng. Hay như website bạn thấy cũng là việc kết nối giữa client và server giữa trình duyệt web trên máy bạn đang đọc và server chứa mã nguồn và cơ sở dữ liệu của mình. Dù sao đi nữa thì bản chất vấn đề vẫn là trao đổi dữ liệu, giao tiếp thông tin như những chiếc điện thoại nói chuyện với nhau vậy. Phương thức trao đổi các loại có thể khác nhau nhưng chung quy nó sẽ là sử dụng một giao thức nào đó để liên lạc với nhau.

Vấn đề được nảy sinh nếu 2 thành phần cùng loại thì có thể dùng chung giao thức như 2 chiếc điện thoại, 2 chiếc máy tính, thì không nói làm gì, vậy giữa 2 services với nhau, có thể sử dụng nhiều ngôn ngữ khác nhau thì phải làm thế nào? Có thể bạn sẽ nghĩ tới interface, hay public api, một cái adapter nào đó, ổ cắm điện có thể kết nối mọi loại giác cắm. Ý tưởng nảy ra trong đầu bạn lúc này là hoàn toàn chính xác. Nó tóm gọn vào 2 vấn đề chính là làm sao để giao tiếp từ xa giữa các services, và làm sao để không phụ thuộc vào thành phần hay nền tảng của mỗi service.

Với vấn đề đầu tiên là giao tiếp từ xa, RPC ra đời, nó chính xác là viết tắt của từ Remote Procedure Calls, một loại giao thức giúp A giao tiếp được với B từ xa. Hãy nhìn vào hình vẽ để hiểu thêm

Đọc tiếp tại đây:

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?