Tôi đang cố gắng xác định cách tải lưu lượng TCP cân bằng. Tôi hiểu cách cân bằng tải HTTP hoạt động như thế nào bởi vì nó là một kiến trúc Request/Response đơn giản. Tuy nhiên, tôi không chắc chắn về cách bạn tải lưu lượng TCP cân bằng khi máy chủ của bạn đang cố gắng ghi dữ liệu cho các ứng dụng khách khác. Tôi đã đính kèm một hình ảnh của luồng công việc cho một máy chủ trò chuyện TCP đơn giản, nơi chúng tôi muốn cân bằng lưu lượng truy cập trên các máy chủ ứng dụng N. Có bất kỳ cân bằng tải nào ngoài kia có thể làm những gì tôi đang cố gắng làm hay tôi cần nghiên cứu một chủ đề khác? Cảm ơn.Làm thế nào để bạn tải lưu lượng TCP cân bằng?
Trả lời
Thứ nhất, sơ đồ của bạn giả định rằng các cân bằng tải là hành động như một (TCP) Proxy, mà không phải là luôn luôn như vậy. Thường trực tiếp định tuyến (hoặc Direct Server Return) được sử dụng, hoặc đích NAT được thực hiện. Trong cả hai trường hợp, kết nối giữa máy chủ phụ trợ và máy khách là trực tiếp. Vì vậy, trong trường hợp này về cơ bản nó là bắt tay TCP được phân phối giữa các máy chủ phụ trợ. Xem sau để biết thêm:
Rõ ràng TCP proxy vẫn tồn tại (HAProxy là một), trong trường hợp proxy quản lý cả hai mặt của connecton, vì vậy ứng dụng của bạn sẽ cần để có thể xác định khách hàng bằng IP/Port đến (mà sẽ xảy ra được từ proxy chứ không phải là khách hàng). Proxy sẽ xử lý việc nhận lại tin nhắn cho khách hàng. Dù bằng cách nào, nó đi xuống để thiết kế ứng dụng như tôi sẽ tưởng tượng bit khó có một cửa hàng phiên chung (một cơ sở dữ liệu của một số loại, hoặc key => giá trị lưu trữ như Redis), để khi máy chủ ứng dụng của bạn nói "Tôi cần phải gửi một tin nhắn đến Frank" nó có thể xác định máy chủ phụ trợ Frank được kết nối với (từ DB), và báo hiệu rằng máy chủ để gửi tin nhắn. Bạn làm giảm vấn đề kết nối (từ cùng một máy khách) di chuyển xung quanh các máy chủ phụ trợ khác nhau bằng các kết nối liên tục (tất cả các bộ cân bằng tải có thể làm điều này), hoặc bằng cách sử dụng một cái gì đó thực sự tồn tại như một websocket.
Đây có thể là sự đơn giản hóa quá mức vì tôi không có kinh nghiệm với phần mềm trò chuyện. Rõ ràng các máy chủ DB có thể được phân phối giữa một số máy, cho khả năng chịu lỗi và cân bằng tải.
Cảm ơn câu trả lời thông tin. Tôi sẽ phải xem xét các chủ đề đó để hiểu thêm. Bạn có biết bất kỳ tài nguyên tốt nào để tìm hiểu thêm về cân bằng tải không? Cảm ơn! –
- 1. Nginx Cân bằng tải lưu lượng cao
- 2. Làm thế nào để bạn CAKeyframeHình thức cân bằng?
- 3. Cân bằng tải và phiên
- 4. trọng lượng không cân bằng cây AVL
- 5. SignalR và cân bằng tải
- 6. Cân bằng tải trong Amazon EC2?
- 7. Làm thế nào để chuyển đổi Master/Slave, cân bằng tải trong CakePHP
- 8. Kinh nghiệm sử dụng cân bằng tải phần mềm so với cân bằng tải phần cứng?
- 9. Giải pháp cân bằng tải Tomcat
- 10. SharePoint, làm thế nào để bạn lập trình xác định dung lượng lưu trữ của SPWeb?
- 11. Tải ứng dụng web cân bằng
- 12. Tắt https để tải cân bằng với Spring Security
- 13. Làm thế nào để bạn nhận được gói tin TCP nguyên trong C#?
- 14. pgpool2 cân bằng tải không hoạt động
- 15. Làm thế nào để cân nặng 'ORDER BY' trong mysql?
- 16. Cân bằng tải WCF và chia sẻ MSMQ từ xa cho thông lượng cao
- 17. Làm thế nào bạn cân bằng giữa thiết kế và (thực tế) thực hiện ứng dụng của bạn
- 18. Kẹp giấy + Rails với máy cân bằng tải
- 19. Yêu cầu HTTPS của Symfony2 sau cân bằng tải EC2
- 20. Cân bằng tải Nginx với ngược dòng SSL
- 21. Làm thế nào để bạn sao lưu Zookeeper?
- 22. Tệp nhật ký IIS và cân bằng tải?
- 23. jQuery: Làm thế nào để bạn tải trước âm thanh?
- 24. Làm thế nào bạn có thể tải số dư một IIS 6 lưu trữ WCF Dịch vụ?
- 25. BST tự cân bằng tốt nhất để chèn nhanh số lượng lớn các nút
- 26. (Làm cách nào) tôi có thể sử dụng ServerSocket để nghe UDP thay vì lưu lượng TCP?
- 27. Làm thế nào để bạn lưu trữ markdown bằng cách sử dụng WMD trong ASP.NET?
- 28. Làm thế nào để bạn tải lên một tệp bằng cách sử dụng Selenium IDE?
- 29. Làm thế nào để bạn tải video lên youtube bằng định dạng json-c?
- 30. Làm thế nào để bạn xử lý các lỗi mức vận tải trong SqlConnection?
Cân bằng tải trong bố cục song song như bạn trình bày nó có một số vấn đề khi bạn nhận thấy. Lấy IRC thay cho một ví dụ, trong đó có một bố trí cây (điều này hỗ trợ đồng bộ hóa và đơn giản hóa việc gửi tin nhắn cho tất cả mọi người), và khối lượng dữ liệu đi qua cây không phải là tất cả những gì nhiều, theo e.g. freenode ops, mặc dù gần 80 nghìn người dùng của họ. –