Perché l'app Java dovrebbe effettuare chiamate RPC su se stessa?

1

Sto lavorando con un'applicazione multi-modulo homegrown multithreaded nel mio nuovo lavoro. Utilizziamo il protocollo Thrift per comunicare le chiamate RPC tra diverse applicazioni autonome in un sistema distribuito. Uno di loro ascolta su più porte e ho appena notato che fa effettivamente una chiamata RPC a se stessa da un thread richiamato da una presa che ascolta (chiamata al servizio web) a un'altra porta all'interno della stessa app. Ho verificato che poteva realizzare la stessa cosa se fosse andato e chiamato direttamente il metodo che alla fine la procedura remota invoca poiché è tutto all'interno della stessa applicazione, stessa JVM. Per renderlo ancora più misterioso, la chiamata è completamente sincrona, cioè non ci sono callback coinvolti. Il primo thread si siede completamente e attende fino a quando non fa una chiamata attraverso il cavo a se stesso e torna indietro.

Ora, sono perplesso perché qualcuno lo farebbe in questo modo. Sembra di chiamare qualcuno al telefono che si trova nella stessa stanza come te. Qualcuno può fornire una spiegazione del perché lo sviluppatore prima di me avrebbe inventato il modello sopra menzionato? Forse c'è un motivo e mi manca qualcosa.

    
posta amphibient 25.10.2013 - 04:59
fonte

2 risposte

2

A un certo punto hanno pensato che forse, un giorno, avrebbero potuto mettere quel server in un altro processo. E così, hanno usato il meccanismo RPC in preparazione per un futuro che non è mai arrivato.

    
risposta data 25.10.2013 - 05:57
fonte
0

È possibile che il programma in esecuzione su quel processo sia stato progettato per essere distribuito su più nodi; in questo caso si ha lo stesso processo su due nodi e il processo dal nodo 1 chiama il processo del nodo 2 anche se eseguono lo stesso programma.

    
risposta data 25.10.2013 - 08:42
fonte

Leggi altre domande sui tag