spring kafka vs apache kafka

2024. 12. 10. 21:44·Kafka
목차
  1. apache kafka
  2. spring kafka
  3. 예시

apache kafka

  • apache Kafka 공식 라이브러리.
  • Kafka 클라이언트를 제공하여 Kafka 브로커와 직접 통신하도록 지원.

spring kafka

  • Spring Framework의 Kafka 통합 라이브러리.
  • org.apache.kafka를 기반으로 하고 있으며, Spring 애플리케이션에 친화적인 기능을 추가.

spring boot에서 apache kafka를 조금 더 편리하게 사용할 수 있도록 한 라이브러리가 spring kafka이다.

예시

apache kafka(저수준 API)

 

  • producer.close()를 명시적으로 호출해야 자원을 적절히 해제할 수 있음.
  • Spring과의 통합 기능이 없어 별도로 관리해야 함.

 

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.util.Properties;

public class ApacheKafkaExample {
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        KafkaProducer<String, String> producer = new KafkaProducer<>(props);
        try {
            producer.send(new ProducerRecord<>("my-topic", "key", "Hello Apache Kafka!"));
        } finally {
            producer.close(); // 명시적으로 자원 해제 필요
        }
    }
}

 

 

Spring Kafka (고수준 API)

 

  • KafkaTemplate을 사용해 간단한 코드로 메시지 전송 가능.
  • Spring 컨텍스트가 Bean 생명주기를 관리하므로 자원 해제 관리 필요 없음.
  • 설정도 application.yml로 간단히 관리 가능
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Component;

@Component
public class SpringKafkaProducer {
    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    public void sendMessage(String topic, String message) {
        kafkaTemplate.send(topic, message); // 간단한 메시지 전송
    }
}
spring:
  kafka:
    bootstrap-servers: localhost:9092
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

 

 

 

 

'Kafka' 카테고리의 다른 글

RabbitMQ와 Kafka  (0) 2024.12.10
  1. apache kafka
  2. spring kafka
  3. 예시
'Kafka' 카테고리의 다른 글
  • RabbitMQ와 Kafka
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (208)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (13)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    @JsonProperty
    RR
    @JsonNaming
    Climbing Stairs
    준영속 엔티티
    디자인 패턴
    Oauth2
    AuthenticationSuccessHandler
    wildcards
    clone graph
    Process
    OS
    lower bounded wildcards
    트랜잭션
    Thread
    rotting oranges
    LinkedList
    제네릭
    Reorder List
    JSCode
    pacific atlantic water flow
    운영체제
    fcfs
    minimum number of arrows to burst balloons
    socar
    runner 기법
    Generic
    BFS
    algorithm
    추상화 클래스
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
spring kafka vs apache kafka

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.