Python - Kafka Producer 구성
2021. 7. 21. 17:14ㆍPython
kafka에 message를 보내기 위해서 파이썬으로 프로듀서를 구성해보았다.
우선먼저 필요사항
- Python
- kafka-python
그리하여 먼저 Kafak-python 라이브러리를 설치한다.
!pip install kafka-python
아주 가뿐하게 설치를 하고 나면 이제야 비로서 코드를 한번 알아보도록 하자.
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='localhost:9092')
for _ in range(100):
producer.send('foobar', b'some_message_bytes')
세상 너무 간단하다.. 정말 이것으로 우리가 원하는 메세지를 생성할 수 있나?
실제로 가능하지만.. 너무 기능이 없어서 여러가지 기능을 추가해 본다.
Producer를 구성할때 여러가지 옵션들을 고려할 수 있는데 아래와 같이 구성되어 있으니 참고해서 추가한다.
위의 옵션중 필요한 사항을 적용하여 구성된 프로듀서이다.
producer = KafkaProducer(acks=0, compression_type='gzip', bootstrap_servers=['kafka:9092']\
,value_serializer=lambda x: dumps(x).encode('utf-8'))
for topic in kafka_dict:
producer.send('topic1', topic)
중요하게 작용하는 몇가지만 알아보자
- compression_type : 메세지 압축을 진행하여 데이터의 크기가 크다면 아주 효율적이다.
- bootstrap_server : 꼭꼭 필요하다 Localhost 또는 Docker를 이용하고 있다면 Container의 이름과 Port를 입력한다.
- value_serializer : Lambda를 이용하여 보낼 메세지의 전처리를 할 수 있다.
- json 라이브러리의 dumps를 활용하여 문자열을 json타입으로 변환하고 utf-8 형식으로 인코딩 된 데이터를 보냈다.
- producer.send : 이렇게 만든 문자열 혹은 JSON을 Kafka Broker Topic으로 전송한다. 튜플 구조 안에 'topic1'은 Topic의 이름이고 뒤는 보낼 데이터가 들어간다.
- ex) ( <<Topic Name>>, <<Send Data>>)
이렇게 프로듀서 구성이 완료 되었다.
부디 잘 활용하기를 바라며 글 마친다.
'Python' 카테고리의 다른 글
Python - 코드 실행시간 확인 (0) | 2021.09.11 |
---|---|
Pandas - CSV 저장 한글 깨짐 오류 (0) | 2021.08.20 |
Python - 문자열(str)을 Datetime으로 (0) | 2021.08.20 |
Python - pyodbc를 이용한MS SQL 연동 (0) | 2021.07.09 |
Python - MySQL/MariaDB 접속 (0) | 2021.07.05 |