Apache Kafka

Iniziare con Apache Kafka e Python

Iniziare con Apache Kafka e Python
In questa lezione vedremo come possiamo usare Apache Kafka con Python e creare un'applicazione di esempio usando il client Python per Apache Kafka.

Per completare questa lezione, devi avere un'installazione attiva per Kafka sulla tua macchina. Leggi Installa Apache Kafka su Ubuntu per sapere come farlo.

Installazione del client Python per Apache Kafka

Prima di poter iniziare a lavorare con Apache Kafka nel programma Python, è necessario installare il client Python per Apache Kafka. Questo può essere fatto usando pip (Indice del pacchetto Python). Ecco un comando per ottenere questo:

pip3 installa kafka-python

Questa sarà una rapida installazione sul terminale:

Installazione del client Python Kafka tramite PIP

Ora che abbiamo un'installazione attiva per Apache Kafka e abbiamo anche installato il client Python Kafka, siamo pronti per iniziare a codificare.

Fare un produttore

La prima cosa da dover pubblicare messaggi su Kafka è un'applicazione producer che può inviare messaggi agli argomenti in Kafka.

Nota che i produttori di Kafka sono produttori di messaggi asincroni. Ciò significa che le operazioni eseguite mentre un messaggio è pubblicato sulla partizione Kafka Topic non sono bloccanti. Per semplificare le cose, scriveremo un semplice editore JSON per questa lezione.

Per iniziare, crea un'istanza per il produttore Kafka:

da kafka import KafkaProducer
import json
importa stampa
produttore = KafkaProduttore(
bootstrap_servers='localhost:9092',
value_serializer=lambda v: json.discariche (v).codifica('utf-8'))

L'attributo bootstrap_servers informa sull'host e la porta per il server Kafka. L'attributo value_serializer è solo ai fini della serializzazione JSON dei valori JSON incontrati.

Per giocare con il Producer Kafka, proviamo a stampare le metriche relative al Producer e al cluster Kafka:

metriche = produttore.metrica()
pprint.pprint(metriche)

Vedremo quanto segue ora:

Kafka Mterica

Ora, finalmente proviamo a inviare un messaggio alla coda di Kafkaka. Un semplice oggetto JSON sarà un buon esempio:

produttore.send('linuxhint', 'topic': 'kafka')

Il linuxhint è la partizione dell'argomento su cui verrà inviato l'oggetto JSON. Quando esegui lo script, non otterrai alcun output poiché il messaggio viene appena inviato alla partizione dell'argomento. È ora di scrivere un consumatore in modo che possiamo testare la nostra applicazione.

Fare un Consumatore

Ora siamo pronti per stabilire una nuova connessione come applicazione Consumer e ricevere i messaggi dal Kafka Topic. Inizia con la creazione di una nuova istanza per il consumatore:

da kafka import KafkaConsumer
da kafka import TopicPartition
print('Connessione.')
consumatore = KafkaConsumer(bootstrap_servers='localhost:9092')

Ora assegna un argomento a questa connessione e anche un possibile valore di offset.

print('Assegnazione argomento.')
consumatore.assegnare([TopicPartition('linuxhint', 2)])

Infine, siamo pronti per stampare il messaggio:

print('Ricevo il messaggio.')
per il messaggio nel consumatore:
print("OFFSET: " + str(messaggio[0])+ "\t MSG: " + str(messaggio))

Attraverso questo, otterremo un elenco di tutti i messaggi pubblicati sulla partizione Kafka Consumer Topic. L'output di questo programma sarà:

Kafka Consumatore

Solo per un rapido riferimento, ecco lo script completo di Producer:

da kafka import KafkaProducer
import json
importa stampa
produttore = KafkaProduttore(
bootstrap_servers='localhost:9092',
value_serializer=lambda v: json.discariche (v).codifica('utf-8'))
produttore.send('linuxhint', 'topic': 'kafka')
# metriche = produttore.metrica()
# stampa.pprint(metriche)

Ed ecco il programma Consumer completo che abbiamo utilizzato:

da kafka import KafkaConsumer
da kafka import TopicPartition
print('Connessione.')
consumatore = KafkaConsumer(bootstrap_servers='localhost:9092')
print('Assegnazione argomento.')
consumatore.assegnare([TopicPartition('linuxhint', 2)])
print('Ricevo il messaggio.')
per il messaggio nel consumatore:
print("OFFSET: " + str(messaggio[0])+ "\t MSG: " + str(messaggio))

Conclusione

In questa lezione, abbiamo esaminato come possiamo installare e iniziare a utilizzare Apache Kafka nei nostri programmi Python. Abbiamo mostrato quanto sia facile eseguire semplici attività relative a Kafka in Python con il client Kafka per Python dimostrato.

I migliori giochi da riga di comando per Linux
La riga di comando non è solo il tuo più grande alleato quando usi Linux, ma può anche essere una fonte di intrattenimento perché puoi usarla per gioc...
Le migliori app di mappatura del gamepad per Linux
Se ti piace giocare su Linux con un gamepad invece di un tipico sistema di input di tastiera e mouse, ci sono alcune app utili per te. Molti giochi pe...
Strumenti utili per i giocatori Linux
Se ti piace giocare su Linux, è probabile che tu abbia utilizzato app e utilità come Wine, Lutris e OBS Studio per migliorare l'esperienza di gioco. O...