반응형
Kafka란?
-linked인에서 파생된 것. (이벤트 스트리밍 플렛폼)
데이터 파이프라인 문제를 백엔드에서 해결해야한다. (마이크로서비스를 사용하고있다.)
실습화면 구성하기
-이벤트
소프트웨어에서 일어나는 모든 유형의 사건, 변경사항 ( 메세지라고도 부름)
ex) 회원 - 회원가입..
주문 - 고객주문, 취소
주식 주문- 주문, 채결
이벤트 발행자 <--> 이벤트 구독자
이벤트 중간에 KAFKA를 둬서 의존성을 낮추는 역할을 하게된다.
비동기로 바꾼다는 이야기다.
판매자 -> API Server -> Kafka ->cunsumer -> DB
- 동기 프로세스 (Synchronous):
- 동기 프로세스는 한 작업이 완료될 때까지 대기하고 다음 작업을 실행합니다.
- 예를 들어, 데이터를 요청한 후 응답을 받을 때까지 기다리는 경우를 생각해 볼 수 있습니다.
- 단순하고 직관적이지만, 특정 작업이 오래 걸리면 그 작업이 완료될 때까지 다른 작업을 수행할 수 없어 비효율적일 수 있습니다.
- 비동기 프로세스 (Asynchronous):
- 비동기 프로세스는 현재 작업의 완료 여부와 상관없이 다음 작업을 실행합니다.
- 예를 들어, 데이터 요청을 보내고 바로 다른 작업을 수행하다가, 데이터 응답이 오면 그때 처리하는 방식을 생각해 볼 수 있습니다.
- 복잡한 구현이 필요할 수 있지만, 여러 작업을 동시에 수행할 수 있어 효율적일 때가 많습니다.
- 차이점
- 동기는 작업의 완료를 기다리며 순차적으로 진행되는 반면, 비동기는 작업의 완료를 기다리지 않고 병렬적으로 진행될 수 있습니다.
- 동기는 설계가 간단하고 예측하기 쉬운 반면, 비동기는 설계와 오류 처리가 복잡할 수 있습니다.
- 동기는 특정 작업이 많은 시간을 소모할 경우 전체 시스템의 효율성이 떨어질 수 있습니다. 비동기는 이런 경우에도 다른 작업을 진행하여 전체적인 효율성을 유지할 수 있습니다.
-설치방법
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 |