Pianifica le attività che coinvolgono più servizi in un ambiente di microservizi

0

Sto cercando di risolvere il seguente problema in un'architettura di microservizi. Sono molto nuovo a questa architettura quindi fammi sapere se mi manca usare alcuni dei concetti.

Ecco il problema che devo risolvere:

In an E-Commerce system, a user can place an order for some products. 15 days after the order creation, the system must send an e-mail to the client with a link to evaluate his satisfaction.

Per risolvere il problema, e non solo per venire qui a chiedere la soluzione migliore, sono arrivato con due soluzioni diverse:

Prima soluzione: collega i microservizi agli eventi che viaggiano in un bus degli eventi.

Secondasoluzione:creareunservizio"Scheduler" il cui compito è di ascoltare gli eventi e pianificare le attività nell'ambiente:

Conclusione della domanda:

Penso che la soluzione 2 non sia poi così male, ma mi piacerebbe sentire esperti su quell'architettura, sto sbagliando tutto? Devo correre in un negozio di libri perché non ottengo niente dai microservizi? È la loro terza soluzione che vedi che potrebbe essere meglio risolvere il problema e rispettare i principi dei microservizi?

    
posta Hammerbot 26.09.2018 - 15:12
fonte

1 risposta

1

Entrambe le soluzioni sono fondamentalmente le stesse, la prima ha solo uno scheduler interno.

Potresti anche inviare l'intero ordine al servizio di recensioni nella soluzione 1 piuttosto che richiedere il servizio ordini in 15 giorni.

Il problema essenziale che nessuno degli indirizzi di soluzione sta cancellando l'evento pianificato dopo che è stato impostato.

In realtà è un problema semplice, avere un secondo servizio che viene eseguito quotidianamente, richiede tutti gli ordini di 15 giorni e non è ancora stato elaborato dal servizio ordini, invia l'email e segna l'ordine elaborato.

Se succede qualcosa nel periodo di 15 giorni che significa che l'e-mail non deve essere inviata, cambia la query o l'elaborazione per adattarla al nuovo requisito

L'unica ruga sta implementando un blocco di qualche tipo per impedire che lo stesso ordine venga elaborato contemporaneamente da un'altra istanza del servizio.

    
risposta data 26.09.2018 - 16:14
fonte

Leggi altre domande sui tag