Domanda

Ho una grande webapp monolitico, e ogni volta che faccio modifiche a una sezione particolare della webapp sono costretto a schierare l'intera applicazione.

Vorrei una scomposizione in blocchi più piccoli a base di funzionalità (ad esempio, in un sito web Banking - voglio separare fuori roba informativo dalla funzionalità banking online, quindi se faccio una modifica alla funzionalità online banking, ho appena distribuire quella parte)

La sfida qui è l'esistenza di alcuni elementi comuni in tutta la webapp, come una classe comune che è condiviso tra l'applicazione.

Ogni pensiero sui diversi modi in cui il partizionamento webapp potrebbe essere fatto? Grazie.

È stato utile?

Soluzione

Questa non è tomcat specifica, ma, in generale, se si sta frazionamento un'applicazione web si vorrà qualche modo per condividere lo stato diverso attraverso i pezzi distribuiti. Si può fare questo con un archivio di database o memcached per le informazioni sulla sessione, ma fare in modo che ogni applicazione in grado di leggere i dati della sessione comune (alcuni quadri useranno una chiave per crittografare i dati della sessione e avrà bisogno di tutti hanno la stessa chiave di lettura esso). Non credo che la maggior parte dei negozi dei cookie per le informazioni di sessione saranno hash in un modo che il cookie non persisterà correttamente tra le applicazioni.

Abbattere per funzione rende più senso. Vedere dove si può separare il codice backend. Se si dispone di bel tipo di URL riposanti, probabilmente si può guardare il vostro URL per aiutare a determinare buone partizioni.

Inoltre, se si dispone di una sezione statica grande che si sta aggiornando a parte, forse, che dovrebbe essere servito da qualcosa di diverso da Tomcat.

Per le classi comuni, è possibile inserire le implementazioni di classe in un barattolo nella cartella tomcat / lib. Essi sarebbero disponibili per l'intero server. Essi non sarebbero in grado di essere adattati molto bene al vostro contesto web (a meno che non hai superato il contesto per loro) e si dovrebbe essere necessario riavviare l'intero server per aggiornare il file jar per ottenere Tomcat ricaricarlo.

Forse si può lavorare su qualcosa con le interfacce che si ottiene una maggiore indipendenza in ogni partizione, consentendo loro di compilare in modo indipendente, in qualche modo. Forse qualche invocazione Remote Method potrebbe anche aiutare a spostare le funzioni comuni a un singolo .jar o .war.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top