KafkaProducerConfig 설정

KafkaProducerConfig ->

final Map<String, Object> configs = new HashMap<>();
    configs.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
    configs.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, KafkaProtobufSerializer.class);
    configs.put("auto.register.schemas", "true"); 
// TODO: 2/2/24 production -> false 변경 필요 -> 이거 바꾸니 schema 등록됨

위 항목을 true로 설정하면 schema registry에 subject가 자동으로 등록이 된다.

schema registry에 등록 안 하면 Subject Not Found 404 뜸

KafkaConsumerConfig 설정

KafkaConsumerConfig -> 

final Map<String, Object> configs = new HashMap<>();
    configs.put(ConsumerConfig.ALLOW_AUTO_CREATE_TOPICS_CONFIG, "true"); // false면 topic 직접 등록 필요 default true
    configs.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
    configs.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, KafkaProtobufDeserializer.class);

schema registry 띄우기

docker-compose 파일로 잘 띄우면 된다. 이때 port 맞춰서 url 잘 명시하기 http://localhost:7002


결과

동일 서버 produce 후 consume 성공

스크린샷 2024-02-02 오후 1.13.34.png

서로 다른 서버 produce 후 consume 성공

스크린샷 2024-02-02 오후 1.25.44.png

스크린샷 2024-02-02 오후 1.26.06.png