앞선 포스팅에서 Confluent Kafka를 설치하고 토픽을 생성했다. 또한 Control Center를 통해 토픽에 메시지를 생성했다.
메시지 생성을 매번 UI를 통해서 수행할 수 없기에 confluent-kafka 라이브러리를 이용해 파이썬으로 메시지를 생성해 보자.
대상 독자
- 파이썬으로 카프카 토픽에 메시지를 생성하고자 하는 개발자
1. confluent-kafka 설치하기
confluent-kafka 라이브러리는 Kafka에 메시지를 생성하고 소비하는 등의 행위를 파이썬으로 할 수 있게 도와준다.
pip install confluent-kafka
나는 2.2.0 버전을 설치했다.
2. 프로듀서 정의하기
프로듀서(Producer)는 토픽에 메시지를 생성할 수 있는 객체다.
그러면 토픽은 어디에 있을까? 브로커라고 부르는 카프카를 구성하는 VM에 저장된다.
프로듀서를 정의하기 위해 꼭 필요한 것이 브로커의 주소를 가리키는 bootstrap.servers이다.
프로듀서 정의
from confluent_kafka import Producer
producer = Producer({'bootstrap.servers': 'localhost:9092'})
여기서 localhost:9092는 broker의 주소를 가리킨다. (docker-compose ps 에서 확인가능)
3. 메시지 생성하기
프로듀서 객체가 정상적으로 생성되었다면 메시지 생성은 아주 간단하다.
앞선 포스팅에서 만들었던 users 토픽에 메시지를 생성해 보자.
from confluent_kafka import Producer
import json
producer = Producer({'bootstrap.servers': 'localhost:9092'})
topic_name = "users"
message = {
"userid": 2,
"gender": "FEMALE",
"username": "옥순"
}
producer.produce(topic=topic_name, value=json.dumps(message))
producer.flush() # 토픽에 메시지가 들어갈 때까지 대기
users 토픽에 이동해 보면 메시지가 생성된 것을 확인할 수 있다.