2015-06-04 21 views
6

Ho un produttore che scrive messaggi su un argomento/partizione. Per mantenere l'ordine, vorrei andare con una singola partizione e voglio che 12 consumatori leggano tutti i messaggi da questa singola partizione (nessun gruppo di consumatori, tutti i messaggi dovrebbero essere inviati a tutti i consumatori). È possibile? Ho letto alcuni forum che solo un consumatore può leggere per partizione.Kafka più utenti per una partizione

risposta

13

È possibile utilizzare SimpleConsumer per ottenere esattamente ciò che si sta chiedendo: nessun gruppo di consumatori, tutti i consumatori possono leggere una singola partizione. Tuttavia, questo approccio significa che devi gestire da solo la gestione dell'offset e del broker di offset.

Un'altra opzione consiste nell'utilizzare un consumatore di alto livello con diversi gruppi di consumatori (è possibile assegnare un UUID casuale a ciascun utente). In questo modo sarai in grado di consumare un argomento/partizione con tutti i consumatori ed essere in grado di commettere offset e gestire l'interruzione del broker.

La regola "solo un singolo consumatore può consumare un argomento/partizione" si applica solo ai gruppi di consumatori, ad es. solo un consumatore IN GROUP può consumare un argomento/partizione contemporaneamente.

+1

se utilizzo un groupid di consumatore univoco per ciascun consumatore, leggerò tutti i messaggi per ciascun cliente da una singola partizione? cioè qualcosa come nel codice .. props.put ("group.id", KafkaProperties.groupId); – skumar

+2

Sì, se l'argomento con una singola partizione contiene 1000 messaggi, tutti i consumatori con gruppi di consumatori diversi leggeranno 1000 messaggi ciascuno. – serejja

+0

Potete per favore fornire alcuni esempi per l'approccio 1 (gestione offset e broker fallito) e per l'approccio 2 (assegnare randow uui a ciascun consumatore) ?. – skumar

0

Se si dispone di più utenti sulla stessa partizione, supera l'esigenza iniziale di mantenere l'ordine. Tuttavia, avresti ordinato lo stoccaggio, ma il consumo non sarebbe stato ordinato. Assicurati di essere davvero OK con quello. Se sì, puoi trattare ogni consumatore come un gruppo di consumatori diverso.

Problemi correlati