Last active
February 16, 2023 07:35
-
-
Save dattp/543daca8f35babec326e5538f9c893e4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Stateless và statefull | |
Hiểu đơn giản thì `stateless` nó là 1 cái gì linh hoạt. Còn `statefull` thì nó sẽ ràng buộc với 1 cái gì đó. | |
Ví dụ: về vấn đề scale service. | |
* Deploy service application trong 1 cụm swarm. Khi có 1 service bị quá tải, ta sẽ chạy thêm service đó trong cụm swarm bằng lệnh `docker service scale service = 5` lên 5 service. Việc scale service diễn ra nhanh gọn, không cần chỉnh sửa config vì cả 5 con chạy lên cùng 1 port expose, gateway sẽ tự chia tải đều. | |
* Vẫn là trong cụm swarm đó, nhưng nếu là service chạy socket.io. Vì dữ liệu từ client gửi lên được lưu trong từng service. Nên với mỗi request từ client gửi lên. Ta cần cho nó vào 1 service duy nhất mà trc đó nó đã vào. Nếu nó vào service khác thì dữ liệu gửi lên trc đó không tồn tại (ăn theo từng process của request). Do vậy, việc scale service diễn ra ngay từ khi config deploy- xác định rõ số lượng service cần chạy, và mỗi service chạy trên 1 port riêng. Do đó, ngay từ confix của revert proxy (HAproxy) đã phải config cho ws theo kiểu sticky trỏ về từng port service tương ứng.Nên khi service cao tải, ta không thể scale 1 cách linh hoạt như stateless. Mà phải sửa confix deploy và sửa cả revert proxy. Đó là statefull |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment