4장. Kafka 클러스터에 연결하기 위한 클라이언트 애플리케이션 구성
Kafka 클러스터에 연결하려면 브로커를 식별하고 연결을 활성화하는 최소 속성 세트로 클라이언트 애플리케이션을 구성해야 합니다. 또한 Kafka에서 사용하는 바이트 배열 형식으로 메시지를 변환하려면 serializer/deserializer 메커니즘을 추가해야 합니다. 소비자 클라이언트를 개발할 때 사용 가능한 모든 브로커를 검색하는 데 사용되는 Kafka 클러스터에 초기 연결을 추가하여 시작합니다. 연결을 설정하면 Kafka 주제에서 메시지 사용을 시작하거나 메시지를 생성할 수 있습니다.
필수는 아니지만 로그 및 메트릭 컬렉션에서 클라이언트를 식별할 수 있도록 고유한 클라이언트 ID를 사용하는 것이 좋습니다.
속성 파일에서 속성을 구성할 수 있습니다. 속성 파일을 사용하면 코드를 다시 컴파일하지 않고도 구성을 수정할 수 있습니다.
예를 들어 다음 코드를 사용하여 Java 클라이언트에서 속성을 로드할 수 있습니다.
클라이언트에 구성 속성 로드
Properties props = new Properties();
try (InputStream propStream = Files.newInputStream(Paths.get(filename))) {
props.load(propStream);
}
구성 개체의 코드에 속성을 직접 추가할 수도 있습니다.You can also use add the properties directly to the code in a configuration object. 예를 들어 Java 클라이언트 애플리케이션에 setProperty() 메서드를 사용할 수 있습니다. 속성을 직접 추가하는 것은 구성할 속성 수가 적은 경우에만 유용한 옵션입니다.Adding properties directly is a useful option when you only have a small number of properties to configure.
4.1. 기본 생산자 클라이언트 구성 링크 복사링크가 클립보드에 복사되었습니다!
생산자 클라이언트를 개발할 때 다음을 구성합니다.
- Kafka 클러스터에 대한 연결
- Kafka 브로커의 바이트로 메시지 키를 변환하는 직렬화기
- Kafka 브로커의 바이트로 메시지 값을 변환하는 직렬화
압축 메시지를 보내고 저장하려는 경우 압축 유형을 추가할 수도 있습니다.
기본 생산자 클라이언트 구성 속성
client.id = my-producer-id
bootstrap.servers = my-cluster-kafka-bootstrap:9092
key.serializer = org.apache.kafka.common.serialization.StringSerializer
value.serializer = org.apache.kafka.common.serialization.StringSerializer
코드에 직접 생산자 클라이언트 구성 추가
Properties props = new Properties();
props.setProperty(ProducerConfig.CLIENT_ID_CONFIG, "my-producer-id");
props.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "my-cluster-kafka-bootstrap:9092");
props.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
props.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
KafkaProducer<String, String> producer = new KafkaProducer<>(properties);
KafkaProducer 는 전송하는 메시지의 문자열 키 및 값 유형을 지정합니다. 사용되는 serializers는 지정된 유형의 키와 값을 Kafka로 보내기 전에 바이트로 변환할 수 있어야 합니다.