nucleo di molla scalabile con AMQP?

2

Uso 3 guerra Spring MVC standard, che condividono un nucleo comune (servizi, DAO e modelli). Il problema principale è quando pianifico di distribuire tutte le 3 guerre su uno stesso server. Ho istanziato il Core Application Context 3 volte.

So che è possibile condividere un contesto comune usando un EAR, ma per motivi di scalabilità devo tenere tutte e 3 le guerre, come 3 unità distinte, che possono essere distribuite in un conteggio diverso ciascuna.

La mia domanda riguarda una scelta architettonica:

È una buona idea dividere il livello di servizio usato dai miei controllori in una facciata + comandi (pattern) che possono essere distribuiti al core (backend) tramite un AMQP? In modo che potessi condividere le richieste su più core.

    
posta Zenithar 10.06.2013 - 21:17
fonte

1 risposta

1

Sì; è una buona idea mettere il tuo core layer su un nodo diverso e farlo comunicare con i 3 livelli distinti superiori tramite AMQP. Ciò porta una scalabilità orizzontale: non solo puoi mettere i livelli superiori e il core layer su nodi diversi, ma puoi replicare il core su 2 o più nodi. Inoltre è possibile distribuire il broker dei messaggi su più nodi (ad esempio RabbitMQ supporta il clustering). AMQP è probabilmente una scelta migliore rispetto a JMS poiché è più flessibile, consentendo di integrare facilmente moduli scritti in diverse lingue; anche Spring ha un buon supporto per AMQP tramite Spring AMQP.

L'alternativa, come hai detto, sarebbe stata mettere tutto in un orecchio e distribuirlo su un server Java EE che può essere distribuito su molti nodi. Ma dal momento che hai già Spring, questo richiede più sforzo.

    
risposta data 10.06.2013 - 23:07
fonte

Leggi altre domande sui tag