2015-03-02 20 views
7

Ho trovato un libro "Spring DM in azione". Quando ho iniziato a controllare l'ultima versione di Spring per OSGI, ho scoperto che Spring ha interrotto questo progetto.Qual è il percorso corretto per la creazione di micro servizi in Java? Spring Boot o OSGI

Come ho qualche esperienza di sviluppo in primavera, mi piacerebbe capire se dovessi continuare a leggere su Spring e OSGI o passare a Spring Boot come modo di creare applicazioni modulari?

+0

Primavera si chiama Eclipse Virgo adesso. Tuttavia, dovresti leggere il seguente post sul blog: http://blog.osgi.org/2014/09/how-should-i-use-guicespringblueprint.html e lasciare le tecnologie Spring come se volessi usare OSGi. –

+0

Grazie per la risposta. Ho capito correttamente che se fossi un fan di Spring dovrei dimenticarmi di OSGI come un modo di creare un sistema modulare e semplicemente di inoltrare su Spring Boot per quello? –

+0

Anch'io ero un fan di primavera. Semplicemente non funziona bene con OSGi. Non penso che dovresti dimenticarti di OSGi. Non dovresti usare le due tecnologie insieme. In OSGi, utilizzare un diverso modello di componente (come Servizi dichiarativi) progettato per funzionare correttamente in un ambiente modulare. Nella mia esperienza, all'inizio il passaggio è doloroso all'inizio, ma non tornerò mai al mondo monoolitico basato sulla primavera. –

risposta

7

Ho voluto scrivere un commento, ma non mi ha dato abbastanza caratteri.

Se avete bisogno della modularizzazione e della dinamica di OSGi, spring DM (ora Gemini Blueprint) è una buona tecnologia. Lo abbiamo utilizzato per creare un middleware orientato ai messaggi ad alte prestazioni con un'infrastruttura di plugin. L'infrastruttura plug-in era necessaria, poiché il cliente desiderava poter aggiungere/sostituire/aggiornare i moduli e modificare le rotte tramite un'interfaccia web in fase di runtime. Ogni messaggio è stato anche trasformato tramite gli script groovy 0-N (memorizzati in db, modificabili in runtime). Il motore di elaborazione era basato sul batch di primavera e sull'integrazione della molla.

Quindi, se si dispone di casi di utilizzo reali per OSGi, può essere una buona tecnologia.

Ma la maggior parte delle volte le persone hanno provato a usarlo, per separare gli strati di un'applicazione web monolitica, che non è utile e offre più lavoro che profitto. Una volta ho visto un approccio in cui uno sviluppatore usava OSGi per separare ciascun gruppo del suo modello di dominio in un piccolo modulo. Questo danneggia il tuo design di applicazione più di quanto tu possa trarre profitto, perché il profitto è nullo.

Inoltre, il libro potrebbe essere una buona idea per darti un approccio diverso sul software "come sviluppare".

-1

Il problema è che si tratta di due concetti completamente diversi di creazione di app modulari.

L'OSGI è un sistema enorme che si trova molto più in basso rispetto all'avvio o alla primavera. Ti offre un set diverso di strumenti per la modularizzazione dell'applicazione e pone sfide molto diverse durante lo sviluppo.

Leggi cosa è esattamente OSGI, cos'è Boot e quali problemi risolvono. Se dopo aver letto non sai quale strumento scegliere, vai per Boot.

+0

Con "boot" intendevi lo spring boot? In che modo l'approccio del modulo dello spring boot funziona in modo diverso rispetto alla modularizzazione delle applicazioni "normali" a molla? –

+0

Sì, intendevo Spring Boot. Non c'è davvero alcuna differenza. La domanda riguardava Boot, quindi presumo che qualcuno stia provando nuove tecnologie o provando a ottenere la modularità avendo molti punti finali REST. Indipendentemente da quale sia il caso, è almeno un paio di giorni per capire requisiti e vincoli. –

1

alla domanda del titolo: "OSGi" di sicuro. Un servizio OSGi è un candidato molto (il più?) Naturale per il moniker di microservizio.

al contenuto del tuo post: "entrambi"

devo saltare qui, e dire OSGi, IMHO, è la cosa migliore che possa succedere a Java, dal momento che ... beh, forse mai. Perché? Ti prega di seguire le migliori pratiche di progettazione, facilitando la produzione di pezzi di codice più piccoli e più modulari.

Anche io amo lo spring-boot, ma lo trovo più adatto a (leggi, "awesome for") scrivere applicazioni lato client.

Per quanto riguarda la tua esperienza con Spring - non aver paura. Se sei abituato a creare configurazioni XML, scoprirai che la sintassi del progetto è, nella maggior parte dei casi, identica ... e puoi ancora fare un ampio uso dei vari pezzi primaverili all'interno di un sistema che fa leva su OSGi.

CRONACA - sto parlando dal punto di vista di aver sviluppato diversi sistemi su larga scala radicati nella OSGi (e anche un paio di incursioni nella natura selvaggia delle tipiche WAR/implementazioni servlet) DM