2011-08-24 12 views

risposta

4

cercherò di rispondere a questa come una spiegazione morbida, piuttosto che un guasto tecnico di caratteristiche:

Si può dire Finagle è una libreria di messaggistica asincrona che consente ai servizi di connettersi tra loro liberamente (non strettamente legati agli standard di integrazione dei sistemi architetturali), supportando contemporaneamente più protocolli.

Dal Finagle sito:

Finagle è uno stack di rete per la JVM che è possibile utilizzare per costruire asincrono Remote Procedure Call (RPC) client e server in Java, Scala, o qualsiasi altro linguaggio JVM-hosted . Finagle fornisce un ricco set di strumenti indipendenti dal protocollo.

Un bus di servizio aziendale (ESB), d'altra parte, è un'architettura di messaggistica asincrona che in genere aderisce agli standard e ai protocolli del settore. Un ESB promuove un sistema in cui il flusso dei messaggi è controllato e instradato tra i sistemi e dove i server possono registrare il loro servizio e i clienti possono registrare i messaggi a cui sono interessati. I servizi offerti dai server possono essere registrati e versionati.

In genere, Finagle viene utilizzato da qualche parte tra un sito Web e servizi di back-end. Normalmente, troverai un ESB all'interno di una grande azienda, dove è responsabile dell'integrazione di sistemi come finanza, supporto, vendite, ecc.

Entrambe le soluzioni offrono messaggistica asincrona e buffering a varie estensioni, ma non sono progettate per risolvere il problema. stesso problema. Per ESB, probabilmente penseresti "rigoroso, impresa", ma per Finagle probabilmente penseresti "flessibile, web".

Spero che questo aiuti

Aggiornamento:

Non del tutto correlato, ma se si stanno esplorando questo spazio, vorrei guardare Kafka in questi giorni.

2

risolvere sia i problemi completamente diversi:

  • Un ESB è un middleware intermediazione che fornisce messaggio trasformazione e routing, adattamento del protocollo e altre operazioni a valore aggiunto (come orchestrazione, consegna garantita, filtraggio idempotente ...) . Si trova tra i consumatori e i fornitori di servizi e in modo trasparente (ovvero senza alcun cambiamento nel consumatore o nel fornitore) fornisce le sue diverse funzionalità.
  • Un sistema RPC fornisce tecnologie client e server per l'esecuzione di operazioni RPC.
+0

Per favore, crea Finagle come tag, non ho i privilegi. – Jack

+0

Di sicuro: fatto. –

2

RPC ed ESB sono due modelli architettonici. Mentre RPC è di solito una richiesta-risposta e di natura sincrona, un ESB lavora sul concetto di messaggistica (spiegazione semplificata) e di natura asincrona. ESB è la base per qualsiasi implementazione SOA. L'ESB consente un accoppiamento lento favorendo così la vera agilità. Un esempio semplificato dal punto di vista dell'implementazione è il seguente:

Un servizio Web è un tipico RPC. Il consumatore è strettamente legato al produttore e qualsiasi modifica del contratto da parte del produttore richiederà modifiche dal lato del consumatore.

In ESB, il consumatore del servizio non invoca direttamente il produttore del servizio. Mette semplicemente il messaggio nel bus e in base alle regole (mediatore), il produttore di servizi appropriato lo gestirà. Se il consumatore di servizi e il produttore di servizi parlano in diversi formati, ESB offre la possibilità di effettuare la trasformazione (come la formattazione del codice postale come xxxxx-xxxx, suddividendo il nome in nome e cognome, ecc.).

Questa è solo una spiegazione semplificata. Per ulteriori informazioni, si prega di consultare i seguenti link:

Why do developers need an Enterprise Service Bus?

Enterprise Service Bus