Sau khi chém gió đông tây thì có nhiều anh em còn hoài nghi là liệu Ingress-Nginx có load balancing cho protocol là GRPC hay ko?
Bữa trước chúng ta được 1 sư huynh chỉ code GPRC rồi giờ test thử sem sao!
Public GRPC via ingress-nginx.
Và tham khoả thêm bài này
https://dev.to/techschoolguru/load-balancing-grpc-service-with-nginx-3fio
Mô hình chúng ta sẽ có client, server GRPC và ở giữa là Ingress-nginx
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-49.png)
Server Streaming API
Client sẽ gửi 1 request và nhận nhiều response từ server.
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-50.png)
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-51.png)
Mình mới chôm được hình nhìn xịn sò hơn
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-59.png)
Và mình thấy là Ingress-nginx đang load balancing ngon cho GRPC mode Server Streaming API
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-52.png)
Còn client B nhận được response của Server C
Vì một số lý do kĩ thuật chúng ta đi đến Bi-Directional Streaming API
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-60.png)
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-61.png)
Ở đây, thì anh đó chỉ cách tìm số lớn nhất trong a list số
Lần 1st: send 5 => số lớn nhất 5
Lần 2nd: send 10 => số lớn nhất 10 là lớn nhất trong list [5, 10]
Lần 3rd: send 12 => số lớn nhất 12 là lớn nhất trong list [5, 10, 12]
Lần 4th: send 3 => số lớn nhất 12 là lớn nhất trong list [5, 10, 12, 3]
….
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-63.png)
Bạn thấy phần mình khoang thì
mỗi stream của 1 client -> ingress-nginx sẽ đưa đến 1 server khác nhau.
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-62.png)
mình chưa xác định rõ được là lỗi của ingress hay ở đâu?
mà kệ ko sao hihi
Rút ra kết luận Ingress nginx sẽ load balancing dựa trên các stream, để đảm bảo các connection trong 1 stream không bị gửi lộn sộn sang server khác hay là client khác.
Tiện note luôn anh compare Restful API và GRPC:
![](https://nimtechnology.com/wp-content/uploads/2022/03/image-64.png)