2013-03-14 13 views
7

Stiamo valutando alcune opzioni per lo sviluppo di una piattaforma applicativa di telecomunicazioni (e la migrazione/consolidamento di alcune applicazioni standalone nella nuova piattaforma). Una delle nostre principali preoccupazioni è la capacità di gestire un volume elevato di richieste durante le ore di punta.JRuby/TorqueBox per applicazioni ad alte prestazioni/mission critical

Sentiamo il TORQUEBOX sembra una soluzione interessante degno di considerazione in quanto:

  • Velocità (Avanti per prestazioni pure Java)
  • più rapido tempo di sviluppo su Java
  • Maintainability
  • supporto per i thread/concorrenza anche se è Ruby
  • Sviluppo front-end più veloce/più facile con Rails
  • ...
  • RedHat sostenuto e gira su JBoss (scalabilità, lo sviluppo futuro e la possibilità di chiamare Java se necessario)
  1. Qualcuno ha sviluppato/implementato un'applicazione simile (s) con JRuby/TORQUEBOX?
  2. Eventuali gravi colli di bottiglia nelle prestazioni? (o perché non dovremmo usare JRuby e dovremmo usare Java?)
+0

Da quello che ho raccolto dai benchmark e IRC: JRuby/Torquebox possono e gestire i carichi elevati abbastanza bene. Potremmo sviluppare un'app PoC utilizzando Celluloid.IO (per la concorrenza) + TorqueBox e testare come sarebbe normale con un'app di riferimento Java. Aggiorneremo con le statistiche di caricamento se decidiamo di sviluppare l'app JRuby PoC. – bud

+0

Combinare celluloide: io con Torquebox è sembrato essere eccessivo almeno per il nostro requisito e abbiamo finito per utilizzare le funzionalità di coda incorporate di TB e quelle sembrano funzionare senza problemi. Una cosa da tenere a mente è che abbiamo notato che la modalità di sviluppo in esecuzione ha causato errori con limiti di memoria jboss. La distribuzione dell'app in modalità di produzione li ha cancellati. – bud

risposta

0

sì qualsiasi web server Java maturo con JRuby è un'opzione valida. i dettagli sulla gestione degli alti carichi nelle ore di punta dipenderanno davvero dal tipo di app che utilizzerai, da quanto "hardware" puoi permetterti di utilizzare, ma in generale è possibile, ma tieni presente che potrebbero esserci ancora dei "trucchi" per esempio Librerie ruby ​​(gemme) che non gestiscono bene la sicurezza del thread. devi semplicemente capire come procedere rispetto a - che sembra che tu faccia da quando vuoi utilizzare "Celluloid.IO" :)

+0

Celluloide: l'IO sembrava essere eccessivo per la nostra situazione una volta che avessimo compreso veramente le nostre esigenze e preso familiarità con la tubercolosi, e ci siamo semplicemente accontentati delle code integrate di JB/TB. – bud

0

La risposta è SI ma attenzione alle perdite di memoria (gemme, problemi di sicurezza dei file, ecc.) . Devi avere familiarità con strumenti come VisualVM, Eclipse MAT e/o NewRelic.

Stiamo utilizzando Torquebox in produzione per alcuni clienti su Amazon EC2 che gestisce 60k-80k visite al giorno (le nuove istanze di c3 sono eccezionali per Java).

Anche la distribuzione è un problema. Non siamo in grado di configurare alcun tipo di riavvio a rotazione a causa del consumo di memoria. Quindi, ogni volta che utilizziamo Capistrano, è necessario un riavvio completo di JBoss (nessun grosso problema per noi).

Bests, Antonio