Trong khi thiết kế kiến trúc máy khách/máy chủ, có lợi thế nào để ghép nhiều kết nối WEBSOCKET từ cùng một tiến trình với máy chủ (nghĩa là chia sẻ một kết nối) hay không Kết nối WEBSOCKET trên mỗi luồng/phiên trong máy khách (như thường được thực hiện khi kết nối với máy chủ lưu trữ hoặc máy chủ cơ sở dữ liệu.)Thiết kế/Kiến trúc: kết nối web-socket một kết nối với nhiều kết nối
Tôi biết về chi phí kết nối với mỗi kết nối (ví dụ RAM ...). Nhưng mong đợi có ít nhất 1K-10K ở mức tối đa ở mỗi phía khách hàng.
trường hợp sử dụng cụ thể: Cho phép giả định, tôi có một máy chủ từ xa với nhiều phiên ở một bên, và ở phía bên kia tôi có nhiều khách hàng, mỗi khách hàng sẽ kết nối với một phiên khác nhau thông qua máy chủ WebSocket. Trong máy chủ từ xa, có 2 cách để thực hiện: (1) mỗi phiên tạo kết nối websocket riêng (2) tất cả các phiên sẽ sử dụng cùng một kết nối websocket.
Từ quan điểm kết nối, tôi thích giải pháp chia sẻ (một kết nối websocket cho tất cả các phiên), vì máy chủ websocket bị giới hạn bởi #of kết nối có sẵn (lưu máy chủ/nhân rộng). Tuy nhiên, từ lưu lượng truy cập/tốc độ dữ liệu/điểm thực hiện, nếu một phiên sẽ gửi rất nhiều gói nhỏ thông qua kết nối, thì nếu chúng ta sử dụng một kết nối chia sẻ, chúng ta sẽ không thể sử dụng băng thông (tải trọng.). .../thu gom vài gói nhỏ thành một hoặc chia gói lớn thành gói nhỏ), bởi vì chúng tôi có thể gửi các gói khác nhau cho các khách hàng khác nhau từ các phiên khác nhau, trong trường hợp này, chúng tôi sẽ không thu được vài gói (gói nhỏ vì chúng có đích đến khác nhau và từ các nguồn khác nhau !!, trừ khi chúng ta sẽ tạo "kết nối ảo" để quản lý từng dữ liệu phiên để tối đa hóa tốc độ, nhưng điều này sẽ tạo ra nhiều phức tạp thực hiện !!!
Có ý kiến nào khác không?
Cảm ơn, JB.
Cảm ơn Myst, thực sự, có rất nhiều câu hỏi cần xem xét, và giải pháp dựa trên yêu cầu (điều gì quan trọng hơn ...). – Joseph