Applicazione Web con pattern di generazione file

-3

Lavoro su un'applicazione web java. In questa applicazione, gli utenti possono generare alcuni report (xls / pdf) e creare alcuni pacchetti di report multipli. (usando pdfbox, itext)

Sempre più dati vengono aggiunti nell'applicazione da qualche anno.

La generazione di rapporti è fatta sullo stesso server dell'applicazione, che fa rallentamento o valore, sovraccarico di GC quando più utenti fanno allo stesso tempo alcuni rapporti o se sono troppi dati da convertire, quindi l'applicazione è giù ...

Qual è il modo migliore per generare pdf su un'applicazione web?

Esporta tutta la generazione su un altro server?

    
posta Alexandre 15.01.2018 - 16:09
fonte

1 risposta

3

Hai un paio di scelte, a seconda di quanto tempo e denaro hai.

  1. La soluzione più economica è che i tuoi utenti parlino tra loro e pianificano quando richiederanno i report più grandi in modo che non vengano mai eseguiti più di uno alla volta.
    Considero questa scelta insoddisfacente, ma è economico.
  2. Le persone in rete / server hanno impostato un secondo server Web e hanno messo loro due dietro un servizio di bilanciamento del carico .
    Ciò avrà un costo maggiore in termini di hardware, ma spesso è più economico rispetto alla riscrittura della tua applicazione .
  3. Modificare l'applicazione in modo che quando un utente richiede un report, la richiesta venga inserita in una coda per essere elaborata in un secondo momento.
    La coda potrebbe essere elaborata su un altro server (o meno) come desiderato. Dovrai capire come fornire all'utente una "ricevuta" per la loro richiesta e come ottenere il file all'utente minuti / ore dopo (non inviare il file via email)

    Ciò potrebbe significare che l'utente si collega a una pagina Web speciale che mostra i report creati di recente
  4. Fai una combinazione di # 2 e # 3. Esegui subito # 2 in modo che gli utenti siano felici, quindi inizia a fare # 3 (che potrebbe richiedere mesi). A lungo termine, questa è probabilmente la scelta migliore perché si distribuisce il carico sui server, si ha la ridondanza dell'hardware e si ha un esempio di come bilanciare il carico tra le macchine che è possibile utilizzare su altri progetti.
risposta data 15.01.2018 - 17:34
fonte

Leggi altre domande sui tag