2013-03-14 20 views
7

Oceniamy kilka opcji rozwoju platformy aplikacji związanej z telekomunikacją (i migracji/konsolidacji niektórych autonomicznych aplikacji na nową platformę). Jednym z naszych głównych problemów jest możliwość obsługi dużej liczby żądań w godzinach szczytu.JRuby/TorqueBox dla aplikacji o wysokiej wydajności/znaczeniu krytycznym

czujemy TorqueBox wydaje się ciekawe rozwiązanie, które zasługują na uwagę, ponieważ:

  • Prędkość (Obok czystej wydajności Java)
  • Krótszy czas rozwoju na Javie
  • utrzymywalności
  • Wsparcie dla wątków/Współbieżność, nawet jeśli jest to Ruby
  • Szybsze/Łatwiejsze projektowanie frontów z Railsami
  • ...
  • RedHat obsługiwane i działa na JBoss (skalowalność, przyszłego rozwoju i zdolność do wywołania Java jeśli to konieczne)
  1. ktoś opracowanej/wdrożonej podobnej aplikacji (ów) z JRuby/TorqueBox?
  2. Jakieś poważne wąskie gardła wydajności? (lub dlaczego nie powinniśmy używać JRuby i powinniśmy trzymać się Javy?)
+0

Z tego co ja zebrane od wzorców i IRC: jruby/Torquebox mogą i obsługiwać duże obciążenia całkiem dobrze. Być może opracowujemy aplikację PoC za pomocą Celluloid.IO (dla współbieżności) + TorqueBox i testujemy, jak będzie się to odbywać z aplikacją referencyjną Java. Zaktualizuje statystyki obciążenia, jeśli zdecydujemy się na stworzenie aplikacji JRuby PoC. – bud

+0

Połączenie celuloidu: io z Torqueboxem wydawało się przesadą przynajmniej dla naszych wymagań i skończyliśmy z wykorzystaniem wbudowanych funkcjonalności kolejki TB i te działają bez problemów. Jedną z rzeczy, na które należy zwrócić uwagę, jest to, że zauważyliśmy, że tryb programowania w trakcie pracy dawał błędy z limitami pamięci jboss. Wdrożenie aplikacji w trybie produkcyjnym usunęło je. – bud

Odpowiedz

0

Tak, każdy dojrzały serwer WWW Java z JRuby jest wartościową opcją. szczegóły obsługi dużych obciążeń w godzinach szczytu będą naprawdę zależeć od tego, jakiej aplikacji będziesz używać, ile "sprzętu" możesz sobie pozwolić na używanie, ale ogólnie jest to możliwe, ale pamiętaj, że nadal mogą istnieć pewne "groszki" na przykład Biblioteki Ruby (klejnoty), które nie radzą sobie z bezpieczeństwem wątków. po prostu musisz zrozumieć, jak postępować dalej - co wydaje się robić, ponieważ chcesz używać "Celluloid.IO" :)

+0

Celuloid: IO wydawało się przesadą dla naszej sytuacji, kiedy naprawdę zrozumieliśmy nasze wymagania i zapoznaliśmy się z gruźlicą, i po prostu zdecydowaliśmy się na wbudowane kolejki JB/TB. – bud

0

Odpowiedź brzmi TAK, ale pamiętaj o wyciekach pamięci (klejnoty, problemy z wątkami itp.) . Musisz być zaznajomiony z narzędziami takimi jak VisualVM, Eclipse MAT i/lub NewRelic.

Z powodzeniem używamy Torquebox do produkcji dla niektórych klientów na Amazon EC2 obsługujących 60k-80k odwiedzin dziennie (nowe wystąpienia c3 są świetne dla Javy).

Wdrażanie również stanowi problem. Nie możemy skonfigurować żadnego ciągłego restartu z powodu zużycia pamięci. Tak więc za każdym razem, gdy wdrażamy Capistrano, potrzebny jest pełny restart JBoss (nie ma dla nas dużego problemu).

Bests, Antonio