Service Discovery e servizi con più protocolli

0

Ho un caso d'uso in cui voglio chiedere un nodo di scoperta del servizio sui servizi disponibili. Tutti questi servizi avranno un'API REST, ma alcuni avranno anche un bus eventi Vert.x. Gli endpoint REST verranno utilizzati per richiedere dati statici e gli indirizzi del bus eventi possono essere sottoscritti per ottenere dati in tempo reale in alcuni casi.

Un esempio di questo sarebbe il mio primo caso d'uso, un servizio di monitoraggio dei file. Esistono due endpoint REST:

  • /files , che elencherà tutti i file monitorati
  • /history che mostrerà una breve cronologia di ciò che è accaduto ai file monitorati.

Il bus eventi qui verrà utilizzato per fornire a tutti gli abbonati una notifica in tempo reale se viene modificato un file monitorato, quindi non dovranno eseguire il polling del history endpoint. Tuttavia, sembra che non possa connettermi in modo dinamico a un bus di eventi Vert.x tramite Java come mi piacerebbe farlo. Non voglio che il servizio sappia nulla al di fuori di se stesso, tranne che per l'IP all'istanza di rilevamento del servizio.

Non lo ospiterò in nessun ambiente cloud, verrà eseguito su macchine situate presso diversi clienti. Ogni cliente avrà un'istanza di individuazione del servizio per posizione geografica.

Il flusso di lavoro consisterebbe nel primo interrogare la SD, ottenere l'IP e la porta, connettersi al bus eventi disponibile e ricevere eventi pubblicati. Non avrò alcuna di queste informazioni in anticipo, solo dopo aver interrogato il servizio di individuazione dei servizi.

Quindi, da Java, esiste un modo per connettersi dinamicamente a un bus degli eventi e ottenere aggiornamenti dal vivo? Nel linguaggio Vert.x, mi piacerebbe collegare in modo dinamico due bus di eventi in esecuzione in due JVM differenti. Da quello che ho visto su Vert.x, questo deve essere fatto una sola volta e solo una volta per non ottenere la lista nera degli indirizzi IP

È possibile farlo? Consiglieresti qualche altra soluzione al mio problema?

Se è rilevante, sto pensando di usare Spring Boot con Netflix Eureka.

    
posta hochas 20.06.2018 - 11:05
fonte

0 risposte

Leggi altre domande sui tag