Quando utilizzare una coda di messaggi come un database di servizi Web?

0

Ha senso implementare un sistema di code di messaggi come RabbitMQ o Kafka allo scopo di memorizzare i dati in una coda? Ad esempio, questo potrebbe essere fatto per gestire cose come notifiche e messaggistica istantanea tra gli utenti, mentre si stanno ancora memorizzando le informazioni dei messaggi in un vero database come Cassandra in questo modo:

  1. Un utente invia un messaggio a un amico.
  2. Il server riceve la richiesta (probabilmente un POST HTTP).
  3. Il server elabora la richiesta scrivendo il messaggio nel database, che non verrà mai eliminato e aggiungendo inoltre il riferimento a quel messaggio a una coda di notifiche che rappresenta nuovi messaggi .
  4. L'amico è iscritto al flusso di notifiche e riceve immediatamente nuovi messaggi.

Questa sembra un'applicazione molto utile delle code di messaggi. Tuttavia, volevo assicurarmi che avesse senso utilizzarlo invece di utilizzare solo un database e eventi basati su server (come quello di Node.js) per questo particolare scopo.

Modifica: Si noti che non esiste, tuttavia, un processo di backround distinto dall'applicazione principale. Quindi implementare una coda di messaggi non farà molta differenza in termini di ottimizzazione asincrona.

    
posta jcoc611 04.11.2014 - 20:06
fonte

0 risposte

Leggi altre domande sui tag