Come identificare i servizi solo o raggruppati per un microservizio

3

Ecco un esempio che mi sono chiesto per capire meglio i microservizi, ma il fatto è che sono confuso su come identificarli in questo caso particolare.

Ci sono cinema in ogni paese, quei cinema hanno un catalogo di film e non tutti i film possono essere elencati in questo catalogo. Ad esempio, diciamo che un film è mostrato solo in JPN, KRN e CHN e anni dopo è pubblicato in tutto il mondo.

Da questo esempio ho capito quanto segue

  • Un possibile servizio potrebbe essere Servizio Paese con ulteriori dettagli (regione, distretto, ecc.)

  • Un altro deve essere Cinema Service (MS2) Fondamentalmente un CRUD dei cinema

  • Si potrebbe dire che Movies Service (MS3) è un altro, ma se ogni cinema ha film che altri potrebbero non avere, ma potrebbero avere in un futuro ....

Alla fine queste sono le mie domande

  • Unire MS2 e MS3 sarebbe ok? MS2 sarebbe ora in carica per aggiungere i propri filmati?

  • Come posso richiedere i film di ciascun cinema se decido di avere MS3 come servizio separato?

posta Daniel Alvarez 07.07.2018 - 05:57
fonte

2 risposte

1

Non c'è niente di sbagliato nei microservizi che si sovrappongono per introdurre una maggiore complessità nei dati. Avere un servizio di film per elencare singoli film. Avere un servizio di cinema che sa quali film stanno giocando in quali cinema. Crea un endpoint nel servizio cinematografico per far sì che tutti i film vengano riprodotti al cinema X. Il servizio Cinemas chiederà il nome del cinema all'interno dei propri dati, quindi richiederà al servizio Film i dettagli del film corrispondenti alla chiave esterna dei film riprodotti al cinema. I valori di ritorno del servizio cinema sono arricchiti con dettagli del servizio Film.

Quando estendi questa idea ai Paesi, funziona ancora: il film è definito in un'unica posizione e il servizio Paese contiene informazioni sulla licenza utilizzando le chiavi esterne del film.

Per un'ulteriore riflessione, prenderei in considerazione l'ipotesi che la cascata di dati avvenga in un quarto microservizio e lasci le semplici richieste di microservizio (Film, Cinema, Paesi). La richiesta di dati combinati deve quindi essere inoltrata al microservizio di aggregazione che interroga il microservizio Cinema, quindi eseguire una query dal microservizio Film per mettere i risultati di entrambi i microservizi in un oggetto / elenco di risposte singoli.

    
risposta data 06.09.2018 - 20:34
fonte
0

Non dovresti unire i servizi Cinema e Film. Se lo fai, non saresti in grado di creare un film a meno che non venga mostrato in un Cinema. Viceversa, una volta che un film smette di essere visualizzato nell'ultimo cinema, in pratica non esiste più poiché non si è in grado di accedervi.

    
risposta data 07.07.2018 - 18:52
fonte

Leggi altre domande sui tag