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 !!!
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
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ự
2. 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
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 ạ !!!
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é
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 ạ ?