Schema Registry

· Kafka
스키마 레지스트리를 사용하는 가장 큰 이유는 데이터의 호환성과 품질을 보장하기 위함이다. 메시지의 스키마가 없다면 Producer에게 발생한 장애가 모든 Consumer 들에게 전파될 수 있다. 그렇기에 카프카를 사용한다면 스키마 레지스트리 사용은 필수라고 말할 수 있다. Producer가 토픽에 메시지를 생성하고 Consumer가 토픽의 메시지를 소비하기까지 스키마 레지스트리 입장에선 다음과 같은 단계가 수행된다. 1. 토픽에 등록된 스키마 관리 2. Producer의 메시지 Validation Check 3. Consumer의 메시지 Validation Check 그런데, 운영 중 스키마를 변경해야 하는 경우가 생겼다면 어떻게 해야 할까? 다 같이 운영을 중단하고 스키마를 변경한 뒤 운영을 재개할 ..
· Kafka
앞선 포스팅에서 토픽에 Schema를 등록했다. 이제 토픽에 생성되는 메시지는 해당 스키마를 따른다. 이제 반대로 메시지를 Consume 한 뒤 역직렬화를 수행해 보자. 대상 독자 안전한 메시징 시스템을 구축하고자 하는 개발자. Steps 메시지 소비하기 마무리 1. 메시지 소비하기 2. 파이썬으로 Confluent Kafka의 Consumer 구현하기 에서 Consumer 객체를 정의한 뒤 메시지를 읽고 난 뒤 json.loads를 통해 메시지를 역직렬화를 했었다. 이번 포스팅에서 할 내용은 json.loads를 통해 역직렬화가 아닌 avro deserializer를 통해 역직렬화를 수행하는 것이다. from confluent_kafka import Consumer consumer = Consumer(..
· Kafka
지금까지 토픽에 메시지를 생성하고 소비했다. users라는 토픽에 아래와 같은 메시지를 생성했고 해당 메시지들을 소비했었다. { "userid": , "gender": , "username": } 위와 같은 형태로 입력해 주기로 프로듀서와 컨슈머가 약속했지만 갑자기 알 수 없는 이유로 토픽에 메시지로 “Hello”가 입력되면 시스템 장애가 발생할 것이다. Schema Registry를 통해 검증된 메시지만 생성되도록 하자. 대상 독자 안전한 메시징 시스템을 구축하고자 하는 개발자. Steps Schema 정의하기 토픽에 스키마 등록하기 메시지 생성하기 마무리 1. Schema 정의하기 Schema는 3가지 타입을 통해 정의할 수 있다. JSON Avro Protobuf 이 중 어떠한 것을 선택하든 상관은..
ssuwani
'Schema Registry' 태그의 글 목록