perche lo scenario, come mostrato nell'immagine allegata:elaborazione di un messaggio esattamente una volta
- Il Portale (produttore) invierà qualche messaggio per il bus a cui deve essere elaborato da più applicazioni (consumer) - PAYROLLAPP, HELPDESK ecc
- più istanze di applicazioni consumer potrebbe essere in esecuzione, anche questi istanze possono essere aggiunte/ rimossi dinamicamente
- Ora, è fondamentale garantire che il messaggio venga elaborato una sola volta, per applicazione i.e se PAYROLLAPP -1 elabora il messaggio, PAYROLLAPP -2 NON deve elaborarlo; naturalmente, nel diagramma sopra , HELPDESK - 1 deve elaborarlo. In breve, in caso di più istanze, esattamente uno deve elaborare il messaggio, una volta
- Quando ho cercato risposte, la maggior parte delle cose riguardava la creazione di un 'consumatore selettivo' - un consumatore che accetta/rifiuta un messaggio basato su un po 'di logica - si prega di notare che non è possibile apportare modifiche/aggiunte/confezioni per le applicazioni mostrate nel diagramma; la logica deve risiedere da qualche parte nel provider che gestisce il bus
Si prega di guida circa lo stesso.
Aggiungendo ulteriori dettagli dopo la risposta di Petter:
- Le voci alla a sinistra della linea di sinistra-punteggiata sono gli 'approcci' - JMS Pure, ESB, EAI
- Gli elementi a destra della linea con punti a destra sono le "implementazioni"
Ora, la parte grande - QUERIES:
- Indipendentemente dalla soluzione (JMS puri, ESB, EAI), fa parte sotto la linea tratteggiata (code per applicazioni specifiche) orizzontali deve da attuare?
- In che modo l'utilizzo di ESB (JBoss ESB, ecc.), Invece di JMS "puro" (MQ attivo ecc.), Aiuta/ostacolare ? ESB offre vantaggi rispetto a JMS che è 'java-only' (?). Sono un po 'confuso - "ESB o JMS", anche dopo aver consultato discussioni come queste: JMS and ESB - how they are related?. Ha una risposta che dice "JMS non è adatto per l'integrazione di servizi REST, File system, S/FTP, Email, Hessian, SOAP ecc. Che sono meglio gestiti con un ESB che supporta questi tipi in modo nativo. Ad esempio, se hai un processo che scarica un file CSV di 500 MB a mezzanotte e vuoi che un altro sistema prelevi il file, analizza il file CSV e lo importi in un database, questo può essere facilmente eseguito da un ESB - mentre uno la soluzione con solo JMS sarà cattiva. Allo stesso modo, l'integrazione dei servizi REST, con il bilanciamento del carico/il failover a più istanze di back-end può essere eseguita meglio con un ESB che supporta HTTP/S in modo nativo. "Aggiunta solo alla mia confusione !!!
- L'utilizzo del framework EAI (Apache Camel ecc.) È un approccio completamente diverso dal puro approccio JMS o ESB? Se sì, come e quali sono i pro/contro?
- mi hanno detto che da sola ESB non aiuterà, BPM (? O altro) deve essere utilizzato per definire e negozio la logica ‘instradamento’ - è vero?
Sulla base dei vari input forniti, ho deciso di procedere con l'approccio "Destinazioni virtuali" di Apache ActiveMQ. Ho alcuni dubbi riguardo ma quelli saranno pubblicati in un thread separato. Grazie a tutti per l'aiuto e la guida !!! –