Próbuję określić sposób ładowania salda ruchu TCP. Rozumiem, jak działa równoważenie obciążenia HTTP, ponieważ jest to prosta architektura typu Request/Response. Jednak nie jestem pewien, jak załadować bilans ruchu TCP, gdy twoje serwery próbują zapisywać dane do innych klientów. Dołączyłem obraz przepływu pracy dla prostego serwera czatu TCP, w którym chcemy zrównoważyć ruch na serwerach aplikacji N. Czy są jakieś narzędzia równoważenia obciążenia, które mogą zrobić to, co próbuję zrobić, czy muszę zbadać inny temat? Dzięki.Jak ładować saldo ruchu TCP?
Odpowiedz
Po pierwsze, twój schemat zakłada, że równoważenia obciążenia działa jako (TCP) pełnomocnika, co nie zawsze jest prawdą. Często stosuje się Direct Routing (lub Direct Server Return) lub wykonuje się Destination NAT. W obu przypadkach połączenie między serwerem zaplecza a klientem jest bezpośrednie. Tak więc w tym przypadku jest to zasadniczo uzgadnianie TCP, które jest rozprowadzane między serwerami zaplecza. Zobacz następujące po więcej informacji:
Oczywiście proxy TCP istnieją (HAProxy jest jeden), w którym to przypadku proxy zarządza obie strony connecton, więc aplikację musiałby być w stanie zidentyfikować klienta przy pomocy przychodzącego adresu IP/portu (który mógłby pochodzić z serwera proxy, a nie z klienta). Proxy będzie obsługiwać otrzymywanie wiadomości z powrotem do klienta.
Tak czy inaczej, sprowadza się do projektowania aplikacji, ponieważ wyobrażam sobie, że trudnym bitem jest posiadanie wspólnego magazynu sesji (bazy danych jakiegoś rodzaju lub klucza => magazynu wartości, takiego jak Redis), tak, że gdy twój serwer aplikacji mówi: "Chcę wysłać wiadomość do Franka", może określić, do którego serwera zaplecza jest podłączony Frank (z DB), i zasygnalizować serwerowi, aby wysłał wiadomość. Zredukujesz problem połączeń (od tego samego klienta) przemieszczających się po różnych serwerach zaplecza przez stałe połączenia (mogą to zrobić wszystkie moduły równoważenia obciążenia) lub przez użycie czegoś stałego z natury jak websocket.
Jest to prawdopodobnie duże uproszczenie, ponieważ nie mam doświadczenia z oprogramowaniem do czatów. Oczywiście same serwery DB mogą być rozproszone na kilka maszyn, dla odporności na błędy i równoważenia obciążenia.
Dzięki za odpowiedź informacyjną. Będę musiał przejrzeć te tematy, aby zrozumieć więcej. Czy znasz jakieś dobre zasoby, aby dowiedzieć się więcej o równoważeniu obciążenia? Dzięki! –
- 1. Jak ładuje się saldo kafka?
- 2. Sprawdź saldo Twilio z API
- 3. Brak odpowiedzi na saldo 04043
- 4. Jak ładować wiadomości w RabbitMQ
- 5. Jak dynamicznie ładować zasobę R.styleable?
- 6. Jak ładować Ajax w Wordpressie
- 7. HAProxy Loadbalancing Ruch TCP
- 8. Wykrywanie ruchu iOS: Poziomy czułości wykrywania ruchu
- 9. Jak poprawnie zdefiniować konstruktor ruchu?
- 10. jak wykrywać kierunek ruchu machnięcia?
- 11. Odszyfrowywanie ruchu HTTPS w Wireshark nie działa
- 12. brak narzędzia CR-TCP Sampler
- 13. Jak ładować obrazy tylko w widoku?
- 14. OpenCV: Jak ładować obrazy PNG 4 kanałami?
- 15. Jak automatycznie ładować dane w pakiecie R?
- 16. Kompozytor/PSR - Jak automatycznie ładować funkcje?
- 17. Jak stresować/ładować testy w magento
- 18. Jak ładować określony arkusz z arkusza kalkulacyjnego
- 19. Jak dynamicznie ładować klasę w Objective-C?
- 20. Jak automatycznie ładować moduł jądra w Gentoo?
- 21. Jak ładować plik php jeden po drugim?
- 22. Jak bardzo chcesz się ładować z limitami?
- 23. Jak ładować obraz zasobów png w Silverlight?
- 24. Jak ładować pliki w Mac 10.6?
- 25. Jak ładować częściowy html w html5?
- 26. Jak automatycznie ładować "biblioteki" w laravel 4?
- 27. Jak ładować/budżetować w zwinnych projektach programistycznych?
- 28. Jak ładować obrazy za pomocą operatora sieci?
- 29. JBoss 7: jak dynamicznie ładować słoiki
- 30. jak ponownie złożyć segment tcp?
Równoważenie obciążenia w układzie równoległym, takim jak prezentujesz, ma pewne problemy, jak zauważyłeś. Zamiast tego pobierz IRC dla przykładu, który ma układ drzewa (to pomaga w synchronizacji i upraszcza dostarczanie wiadomości do wszystkich), a masa danych przechodząca przez drzewo to nie wszystko, według np. freenode ops, pomimo blisko 80 tysięcy użytkowników. –