Węzeł.js vs Java dla aplikacji Comet [zamknięty]

Chcemy zbudować wysokowydajny, skalowalny serwer Comet i najpierw pomyśleliśmy o użyciu Javy Grizzly z GlassFish.

Ale po pewnych badaniach widzimy ten węzeł.JS szybko przyjmuje jako preferowany wybór ze względu na ekstremalną prostotę i deklarowaną wydajność:

Http://news.ycombinator.com/item?id=1088699

Http://amix.dk/blog/post/19484

Z przyjemnością usłyszę jakieś realne doświadczenia z używania obu, a co ostatecznie może być najlepszy wybór.

Dzięki!

Author: SyBer, 2010-12-20

4 answers

Jeśli chcesz dalej czytać posty na blogu tego samego autora, a mianowicie post, jest node.js best for Comet , wyjaśnia, dlaczego ponownie wrócił do rozwiązania opartego na Javie (Netty) i jest z niego zadowolony. Myślę, że to byłaby interesująca lektura.

 13
Author: Sanjay T. Sharma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-20 10:21:05

Wiem, że to stare i już odpowiedział pytanie, ale myślę, że moje doświadczenie może być pomocne.

Zacząłem mały projekt pet do testowania Node.js-jak to "czuje" i jak na nim programować. Byłem pod wrażeniem łatwości pracy w takim ekosystemie: Node.kod js jest łatwy do napisania (chociaż jego paradygmat asynchroniczny nie jest tak prosty dla konwencjonalnego programisty), biblioteki są łatwe do zbudowania itp. itd. Nawet npm jest niesamowicie proste: po prostu znalazłem najprostszy sposób udostępnienie własnego kodu jako biblioteki to stworzenie z niego publicznego pakietu!

Nie ma jednak zbyt wielu dobrych narzędzi do pracy z Node.js. Może dlatego, że jest to zbyt łatwe do zrobienia, większość bibliotek jest częściowo zaimplementowanych, nieudokumentowanych rozwiązań(i ja też jestem winny ).

Należy również zauważyć, że istotna różnica węzła.js nie jest językiem JavaScript, ale asynchronicznym modelem We / Wy. Jest to najciekawszy aspekt węzła.js, ale asynchroniczne styl programowania nie jest tak dobrze testowany jak konwencjonalny sposób tworzenia stron internetowych. Może to naprawdę cud jest propagowany-a może nie jest tak dobry, jak obiecano.

Nawet w przypadku, gdy się opłaca, czy masz wystarczająco dużo programistów, aby utrzymać taki (przynajmniej nadal) nietypowy kod? Jeśli można uzyskać wiele korzyści z asynchronicznego" sposobu życia " węzła.js, można użyć bardziej skonsolidowanych języków i frameworków, takich jak Twisted dla Pythona (który jest mój preferowany język, więc zadbaj o moją opinię :)). Może być też coś takiego dla Javy. W każdym razie podejrzewam, że na razie nie interesujesz się tym modelem, ponieważ twoje pytanie koncentruje się bardziej na językach niż w paradygmacie programowania, więc Node.js i tak nie ma Ci wiele do zaoferowania.

Więc... Nie, Nie rozwijałbym czegoś professonaly w Node.js na razie, chociaż uważam, że nauka jest zarówno zabawna, jak i pouczająca.

 5
Author: brandizzi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-12 01:29:08

Moim zdaniem asynchroniczne podejście do kometyJS i Grizzly są głęboko wadliwe .

 3
Author: jmarranz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-10 08:13:36

W nowszym teście (sierpień 2012), Node.js był w stanie obsłużyć 1 milion pojedynczych połączeń z jednego serwera 16GB RAM.

Http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/

 2
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-06 22:58:48