Domanda

soluzioni di messaggistica middleware (JMS, Tibco, etc.) consentono di pubblicazione / sottoscrizione con "argomento" filtraggio usando i caratteri jolly per iscriversi a tutti i messaggi di un certo "argomento", per esempio ISCRIVITI ( "ACCOUNT. *") Argomento consente di iscriversi ad entrambi messaggio "ACCOUNT.WITHDRAW" e il messaggio "ACCOUNT.CHECKBALANCE".

Il problema è che tale sottoscrizione riceve anche i miei messaggi pubblicati.

Sto cercando un meccanismo, simile a, diciamo, UDP loopback multicast che possono essere attivata o disattivata dal livello di trasporto senza fare confusione con i dati inviati.

C'è una, dichiarativa (nessun codice personalizzato, la configurazione unica) comune modo di configurare il middleware non ricevere messaggi che quella stessa istanza del servizio ha pubblicato? Idealmente, questo dovrebbe anche essere in grado di filtrare tutto pubblicato da tutti i server (nodi) dello stesso "genere".

Grazie in anticipo.

È stato utile?

Soluzione

Nessuno risponde, quindi mi carillon (in un modo mano-Mossi).

Credo che ci sia niente nel JMS spec intorno a controllare se si ottiene i propri messaggi rimandati su un ricevitore argomento. Quindi, qualsiasi capacità come questo sarebbe una caratteristica vendor non portabile. Soprattutto per il secondo requisito (sulla base di "genere" del client JMS rispetto a un po 'di controllo basato sulla stessa connessione facendo l'invio / ricezione).

Se non hai la flessibilità di modificare il codice o un messaggio di contenuto (proprietà), penso che non hai soluzioni portatili. E probabile che nessuna soluzione a tutti di questa seconda condizione "genere".

Se si vuole studiare le opzioni specifiche del fornitore, avrete bisogno di dirci quale fornitore che ti interessa. È possibile ottenere nulla, ma non c'è modo di sapere senza chiedere.

Altri suggerimenti

L'API JMS contiene questa opzione per TopicSubscriber, ad esempio TIBCO EMS ti permette di creare un consumatore con la proprietà "noLocal". Ciò significa che non messaggi pubblicati sulla stessa connessione, avere consumato dai clienti sulla stessa connessione.

es. date un'occhiata qui come creare un argomento abbonato con l'opzione "noLocal": https://docs.tibco.com/pub/enterprise_message_service/7.0.1-march-2013/doc/html/tib_ems_api_reference/api/javadoc/javax/jms/TopicSession.html

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