Pracowałem nad konfiguracją brokera ActiveMQ, a jedną z rzeczy, która mnie myli, jest to, że wszystko, co przeczytałem, opisuje NIO jako "dobry wybór, jeśli trzeba skalować" lub "coś do zobaczenia". jeśli potrzebujesz większej prędkości ", więc moje pytanie brzmi: dlaczego po prostu nie mówią" zawsze korzystasz z NIO "? Wszystko, co przeczytałem, to zalety, ale prawdopodobnie istnieją powody, aby tego nie używać (w przeciwnym razie byłby to po prostu domyślny). Czym oni są?Wady NIO w ActiveMQ
Odpowiedz
Złożoność. Zazwyczaj prostsze jest kodowanie dla 1 wątku na połączenie.
Ponadto, myślę, że NIO może być nieco wolniejszy w przypadku małej objętości (1, 2, 3 połączenia). Generalnie nie zaprojektowałbyś systemu, który by dobrze działał w przypadku małej objętości, ale jeśli wiesz, że nigdy nie będziesz mieć> 2 połączeń dla aplikacji ... może NIO jest przesadzone/w rzeczywistości szkodliwe.
Transport NIO skaluje się lepiej, ponieważ jest bardziej wydajny i nie odradza się wątku na połączenie. Ponadto transport NIO rozszerza transport TCP, więc wszystkie opcje dla podstawowego gniazda nadal mają zastosowanie. Z mojej wiedzy wynika, że korzystanie z NIO nie stanowi wady, ponieważ ogólnie powinno być bardziej wydajne niż transport TCP. Nie ma żadnego powodu, dla którego mógłbym sobie przypomnieć, że NIO nie jest domyślnym transportem.
- 1. W jaki sposób skalujesz swój ActiveMQ pionowo?
- 2. Złącze NIO w Tomcat
- 3. ActiveMQ odmówił
- 4. Konfigurowanie ActiveMQ
- 5. Najlepszy model wdrożenia NIO?
- 6. NIO - Wykrywanie zamkniętego połączenia
- 7. java nio Wybieranie wybiórcze
- 8. Wydajność grupowania komunikatów ActiveMQ
- 9. Priorytet z activemq
- 10. Sprawdź status brokera ActiveMQ
- 11. activemq http proxy
- 12. ActiveMQ i wbudowany broker
- 13. ActiveMQ wyjątek podczas zatrzymywania
- 14. Wady CouchDB
- 15. synchronizacja żądanie/odpowiedź w kontekście nio
- 16. Problem Java NIO na CharBuffer
- 17. Dowolne środowiska NIO dla .NET?
- 18. Programy Java używające środowiska NIO
- 19. Apache Camel z klastrem ActiveMQ
- 20. Unikanie zduplikowanych wiadomości w JMS/ActiveMQ
- 21. Jak skonfigurować monitorowanie dla kolejki w activemq
- 22. ActiveMQ JMS - trwały temat w sieci brokerów
- 23. Gdzie zmienić wartość prefetch w activemq
- 24. ActiveMQ vs Apollo vs Kafka
- 25. Wady metod statycznych w PHP
- 26. Wady uruchamiania Django w PyPy?
- 27. ActiveMQ Sesja AUTO_ACKNOWLEDGE wpływ nieruchomość
- 28. Korzyści/wady budowania jedności?
- 29. Wady obiektów niezmiennych
- 30. glPixelStorei (GL_UNPACK_ALIGNMENT, 1) Wady?
Generalnie jednak jeden wątek na każde źródło ma znaczący negatywny wpływ na tysiące (lub może setki) wątków, więc w wielu typowych przypadkach ta główna korzyść jest nieistotna. I odwrotnie blokowanie I/O zazwyczaj ma nieco większą przepustowość na wątek. Ale najważniejszym minusem było to, że implementacje NIO w JDK miały przez lata wiele problemów (i różne problemy na różnych platformach). – StaxMan