Spring/Kafka

태태개발일지 (Kafka)

태태코 2023. 8. 6. 23:54
반응형

Kafka란?

-linked인에서 파생된 것.  (이벤트 스트리밍 플렛폼)

데이터 파이프라인 문제를 백엔드에서 해결해야한다. (마이크로서비스를 사용하고있다.)

 

실습화면 구성하기

-이벤트

소프트웨어에서 일어나는 모든 유형의 사건, 변경사항 ( 메세지라고도 부름)

ex) 회원 - 회원가입..

     주문 - 고객주문, 취소

     주식 주문- 주문, 채결

 

이벤트 발행자  <--> 이벤트 구독자 

이벤트 중간에 KAFKA를 둬서 의존성을 낮추는 역할을 하게된다.

비동기로 바꾼다는 이야기다. 

판매자 -> API Server -> Kafka ->cunsumer -> DB

 

  1. 동기 프로세스 (Synchronous):
    • 동기 프로세스는 한 작업이 완료될 때까지 대기하고 다음 작업을 실행합니다.
    • 예를 들어, 데이터를 요청한 후 응답을 받을 때까지 기다리는 경우를 생각해 볼 수 있습니다.
    • 단순하고 직관적이지만, 특정 작업이 오래 걸리면 그 작업이 완료될 때까지 다른 작업을 수행할 수 없어 비효율적일 수 있습니다.
  2. 비동기 프로세스 (Asynchronous):
    • 비동기 프로세스는 현재 작업의 완료 여부와 상관없이 다음 작업을 실행합니다.
    • 예를 들어, 데이터 요청을 보내고 바로 다른 작업을 수행하다가, 데이터 응답이 오면 그때 처리하는 방식을 생각해 볼 수 있습니다.
    • 복잡한 구현이 필요할 수 있지만, 여러 작업을 동시에 수행할 수 있어 효율적일 때가 많습니다.
  3. 차이점
    • 동기는 작업의 완료를 기다리며 순차적으로 진행되는 반면, 비동기는 작업의 완료를 기다리지 않고 병렬적으로 진행될 수 있습니다.
    • 동기는 설계가 간단하고 예측하기 쉬운 반면, 비동기는 설계와 오류 처리가 복잡할 수 있습니다.
    • 동기는 특정 작업이 많은 시간을 소모할 경우 전체 시스템의 효율성이 떨어질 수 있습니다. 비동기는 이런 경우에도 다른 작업을 진행하여 전체적인 효율성을 유지할 수 있습니다.

 

-설치방법

kafka 홈페이지에 방문하여 tar 파일을 다운받고

tar -zxf kafka_2.13-2.8.2.tgz

cd kafka_2.13-2.8.2

bin/zookeeper-server-start.sh config/zookeeper.properties




vi config/server.properties

# returned from java.net.InetAddress.getCanonicalHostName().
advertised.listeners=PLAINTEXT://localhost::9092

수정



 bin/kafka-server-start.sh config/server.properties 
--> 실행

% bin/zookeeper-server-start.sh config/zookeeper.properties
새로운 터미널에서
(먼저 config/server.properties 파일의 advertised.listeners 를 주석 해제하고 localhost:9092 로 수정한다.)
% bin/kafka-server-start.sh config/server.properties
새로운 터미널에서 Create a Topic
% bin/kafka-topics.sh --create --topic topic-example1 --bootstrap-server localhost:9092


% bin/kafka-topics.sh --describe --topic topic-example1
--bootstrap-server localhost:9092
첫번째 Message 발행
% bin/kafka-console-producer.sh --topic topic-example1 --bootstrap-server localhost:9092
>First Message
>Second Message
새로운 터미널에서 Consumer 실행하여 Message 읽기
% bin/kafka-console-consumer.sh --topic topic-example1 --from-beginning --bootstrap-server localhost:9092

명령어 입력한다.

 

 

 

반응형

'Spring > Kafka' 카테고리의 다른 글

태태개발일지(Kafka)  (0) 2023.08.08
태태개발일지(Kafka)  (0) 2023.08.07