Avatar
1
Senior Inter Beginner
Senior Inter Beginner
So sánh RabbitMQ và gRPC
Hello mọi người, trong quá trình tìm hiểu RabbitMQ và gRPC, mình vẫn chưa phân biệt được khi nào nên dùng 1 trong 2 thằng này. Ai có kinh nghiệm có thể chia sẻ lại cho mình với ạ. Thanks !!!
  • Answer
c# grpc rabbitmq sosanh
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
The Best Answer
Anh trả lời nhé:

  1. RabbitMQ:
  • Hoạt động theo mô hình: Producer Broker Consumer
  • Phù hợp cho việc broadcast message, hay pub/sub message
  • Message có thể nằm trong các queue và có thể đảm bảo được thứ tự
  1. gRPC
  • Hoạt động theo mô hình: Client Server
  • Phù hợp cho việc gọi API để xử lý và nhận về kết quả
  • Message sẽ được gửi đến server có thể không theo thứ tự, miễn sao gửi được đến server nhanh nhất có thể và nhận về kết quả sớm nhất có thể là được
  • 1
  • Reply
Thanks anh ạ, nhưng em thấy những gì RabbitMQ làm được thi gRPC cũng làm được (ngoài trừ bắn notification, message thì dùng RabbitMQ tốt hơn). Anh có thể ví dụ cho em rõ hơn ở thực tế 2 cái này sử dụng trong trường hợp nào và có thể áp dụng cả 2 trong cùng 1 dự án được không ạ, em mới chỉ tìm hiểu chứ chưa được sử dụng microservice bao giờ. Em cảm ơn ạ !!!  –  Senior Inter 1630868405000
Tất nhiên là làm được, nhưng nó chậm hơn em. Vì lúc nào dữ liệu cũng phải đi qua broker nên tổng quãng đường 1 message phải đi khi gọi RPC thông qua RabbitMQ là 4 (Producer Broker Consumer) còn tổng quãng đường khi dùng RPC là 2, mà dữ liệu gửi qua mạng không hề nhanh, nên performance của RPC sẽ tốt hơn, em có thể tự kiểm chứng được cái này nhé  –  monkey 1630879584000
Sau 1 tgian tìm hiểu, em lại có 1 vấn đề thắc mắc mới đó là khi đang triển khai mô hình microservice, để đảm bảo tính toàn vẹn dữ liệu thay vì sử dụng rest hoặc gRPC để call các service với nhau, ta nên áp dụng message broker (RabbitMQ) để phòng 1 service nào đó chết. Vậy gRPC được áp dụng khi nào trong kiến trúc microservice ạ ?  –  Senior Inter 1630908128000
Như câu trả lời trước của tvd12 đã trả lời, gRPC được sử dụng để gửi và nhận kết quả xử lý trả về, các request yêu cầu về hiệu suất.  –  Nguyễn Thanh 1660611142000