- vừa được xem lúc

[GOLANG] - Tạo gRPC Tập Trung Áp Dụng Trong Microservice

0 0 7

Người đăng: Quoc Huy Tran

Theo Viblo Asia

Ở bài viết này mình sẽ không đề cập tới việc cài đặt, khởi tạo server gRPC server hay client, mình sẽ đề cập chi tiết ở 1 bài viết chuyên về gRPC hơn. Bài viết này mình sẽ mô tả cách mình setup gRPC trong mô hình Microservice sao cho dễ dàng áp dụng nhất.

1. Chạy gRPC server và client

Giả sử mình có 2 service là OrderService và DriverService, và 2 service này sẽ communicate với nhau bằng đường gRPC. Phía OrderService sẽ generate ra file server và client rpc và DriverService cũng tương tự. Để Phía DriverService có thể communicate với OrderService bằng gRPC, bên DriverService phải có file client được generate từ phía OrderService và ngược lại.

Đặt trường hợp không chỉ có 2 mà là hàng trăm services communicate với nhau bằng gRPC , vậy 1 services client muốn call gRPC với n services sẽ phải tải n file gRPC client từ các services khác về lại source code của mình, điều này dẫn tới sự phồng to của source code. Chưa kể khi phía server generate lại file proto, phía client phải copy lại và update để không bị outdate.

2. gRPC Tập Trung

  1. Để các service communicate với nhau thông qua gRPC mà không cần quá quan tâm việc copy lại file gRPC client, mình có đề ra phương án là tạo 1 gRPC tập trung. gRPC tập trung ở đây có thể hiểu là mình sẽ gom toàn bộ file proto từ tất cả các service và tạo 1 repository chung cho tất cả. Tiếp đó, mình sẽ cấu trúc theo package của golang, trong đó mỗi package tương ứng 1 service. Khi generate ra file code golang gRPC server và client sẽ được đưa vào package tương ứng.
  2. Khi generate ra tất cả, mình sẽ up lên github và coi module này như 1 thư việc mã nguồn mở
  3. Các service sẽ go get module này về, và apply gRPC server cũng như client theo module , như vậy cách làm này ta không cần quan tâm tới việc copy file đúng hay chưa nữa, cũng như không sợ code bị phình to.
  4. Source code tham khảo https://github.com/huytrantech/proto-core-2

Bình luận

Bài viết tương tự

- vừa được xem lúc

gRPC - Nó là gì và có nên sử dụng hay không?

Nhân một ngày rảnh rỗi, mình ngồi đọc lại RPC cũng như gRPC viết lại để nhớ lâu hơn. Vấn đề là gì và tại sao cần nó .

0 0 112

- vừa được xem lúc

Build gRPC client iOS đơn giản

Introduction. Trong bài viết trước, chúng ta đã cùng nhau tìm hiểu về gRPC và cách để build một gRPC server bằng node.js với các chức năng CRUD đơn giản:. https://viblo.

0 0 24

- vừa được xem lúc

Build CRUD Server đơn giản với gRPC và node.js

. gRPC là một framework RPC (remote procedure call) do Google phát triển, đã thu hút được nhiều sự quan tâm của cộng đồng software developer trong những năm vừa qua. Đặc biệt, gRPC được ứng dụng nhiều trong các hệ thống microservice bởi nhiều đặc tính vượt trội như: open source, không phụ thuộc vào

0 0 154

- vừa được xem lúc

Microservice với Golang, NodeJS và gRPC (Phần 2)

Tiếp tục phần 1, phần này mình sẽ tạo một con node server để connect đến core server và cũng chỉ để hiển thị hello world. Node Server.

0 0 103

- vừa được xem lúc

Microservice với Golang, NodeJS và gRPC (Phần 1)

Đặt vấn đề. .

0 0 40

- vừa được xem lúc

Biến ứng dụng Laravel của bạn trở nên phức tạp hơn với gRPC

gRPC là gì . RPC.

0 0 278