Streaming scalabile orizzontalmente di risultati di query SQL

0

Ho un servizio che esegue query su un database e ottiene (potenzialmente) un numero elevato di righe. Dispongo anche di servizi in grado di esportare un determinato set di righe in csv, xlsx o pdf ecc. Dispongo di servizi di esportazione separati per sfruttare le funzionalità del linguaggio, ad esempio, java ha una migliore libreria di esportazione xlsx.

Qual è la migliore architettura per trasmettere in streaming i risultati della query a questi servizi di esportazione in modo scalabile in senso orizzontale?

Ho provato a usare code di messaggi come nats o rabbitmq , tuttavia il problema è la dimensione del messaggio. Se invio un messaggio in blocchi / righe, non vi è alcuna garanzia che lo stesso lavoratore riceva tutte le righe a causa della consegna del round robin.

Qualsiasi suggerimento / idea è molto apprezzato

    
posta Cemre 25.12.2018 - 16:13
fonte

1 risposta

1

Invece di avere servizi per eseguire le esportazioni in csv, pdf ecc. potresti forse creare API web per gestire le esportazioni in modo tale che una volta eseguita la query converte i risultati in json e poi li invii a api / csv poi a api / pdf , quindi su api / xlsx.

I diversi endpoint web api potrebbero essere scritti in lingue diverse. In questo modo, se hai bisogno di un nuovo formato di esportazione, devi solo creare un nuovo endpoint dell'API web. Se decidi di mantenere in streaming i risultati delle tue query sulle API anziché inviarli per intero, dovrai configurare i tuoi apis per ascoltare i flussi.

    
risposta data 26.12.2018 - 07:52
fonte

Leggi altre domande sui tag