리눅스/kafka
kafka producer의 객체 직렬화(object serialization)
정지홍
2024. 9. 10. 08:20
바이트 스트림이란?
- 클라이언트나 서버간에 데이터 흐르는 통로이며, 자바는 스트림의 기본 단위를 바이트로 설정함.
- 그래서 db나 network같이 무언가를 전송할때 최소 단위인 바이트로 변환하여 보낸다.
직렬화란?
- 자바 프로그램에서 객체나 데이터를 다른 자바 프로그램에게 보낼때 사용하는 기술.
- stream of byte형태이며 연속적인 데이터(serial)로 변환하는 포맷변환기술이다.
역직렬화란?
- 직렬화로 변환된 데이터를 다시 원래 객체 or 데이터로 변환하는 기술
- 즉, byte형태에서 object or data로 변환.
kafka에서 producer와 consumer간의 serialized message전송
- producer와 consumer는 서로 serialized된 메시지만 전송한다.
- 1. producer record에는 key,value쌍이 있는데 이를 byte array형태로 바꿔야 함.
- 2. 그리고 바꾼것을 broker에게 보냄.
- 3. broker의 partition에는 byte array형태로 저장됨.
- 3. consumer는 이를 받아서 역직렬화를 하여 key,value를 얻는다.
- 이를 노드로 표현하자면....
- 노드1에서 객체를 직렬화 시킨다. => 네트워크로 보낸다 => 노드2는 역직렬화를시켜 객체를 얻는다.