메시지큐, 카프카, 페인 클라이언트

Crow·2023년 2월 14일
1

해당 페이지는 link 내용을 보고 정리하는 페이지 입니다.

// TODO 2023-02-15 오전 3:33 카프카 / 페인 클라이언트 페이지 만들어서 정리

// after 각자 한번씩 테스트 코드를 사용해보는게 좋지만 현재 상황상 우선순위가 더 높은 일부터

메시지 큐(Message Queue)

메시지 큐란?

  • 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나

  • 비동기 메시지를 사용하는 응용 프로그램들 사이에서 데이터를 송수신 하는 것을 의미 (메시지 지향 미들웨어)

  • 위의 그림과 같이 메시지 큐는 메시지를 임시로 저장하는 간단한 버퍼
    (생산자(PRODUCER)의 메시지 추가부터 소비자(CONSUMER)의 작업 수행까지 저장됨)

  • 각 메시지는 하나의 소비자에 의해 한번만 처리 가능(일대일 통신)

  • 이메일전송, 다른곳의 API 데이터 송수신, 많은 양의 프로세스 처리등에 사용된다.


메시지큐 장단점

장점

  • 비동기(메시지를 큐에 담아서 비동기 방식으로 처리하게 때문에 장점이자 단점이 된다.)

  • 낮은 결합도(생산자 서비스와 소비자 서비스가 독립적으로 실행)

  • 확장성(생산자 서비스, 소비자 서비스를 원하는대로 확장가능 물론 큐의 저장 공간을 생각해서 확장해야함)

  • 탄력성(일부 소비자 서비스가 다운되더라도 시스템 전체에 영향 X)

  • 보장성(큐에 보관되는 모든 메시지가 결국 소비자 서비스에 전달되는 일반적인 보장을 제공)


단점

  • 즉각적인 서비스가 불가능하다.(비동기)

  • 큐가 가득 차서 더는 큐에 메세지를 저장할 수 없는 상황에서는 메세지를 다른 곳에 보존하거나 버리게 된다.(생산자측이 소비자 측보다 빠를경우 처리 속도가 느려져서 문제가 생김)

  • 메시지큐 자체가 문제시 시스템 전체에 영향을 끼친다.


당연히 모든 작업에 메시지큐를 적용시키려는 생각을 하진 않겠지만
적합한 작업을 메시지큐에 할당해서 성능 향상을 야기할 수 있다고 생각된다.
(어떤게 적합한 작업인지는 그때 그때 상황에 맡에 판단 할 수 있어야 겠다..)

카프카

https://soft.plusblog.co.kr/3
https://www.redhat.com/ko/topics/integration/what-is-apache-kafka
https://velog.io/@18k7102dy/Apache-Kafka-%EC%95%84%ED%8C%8C%EC%B9%98-%EC%B9%B4%ED%94%84%EC%B9%B4%EB%9E%80


페인 클라이언트

https://techblog.woowahan.com/2630/
https://techblog.woowahan.com/2657/


reference

https://velog.io/@doobyeol/%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EC%BD%94%ED%85%8C-%EB%A9%B4%EC%A0%91-%ED%9B%84%EA%B8%B0
https://tecoble.techcourse.co.kr/post/2021-09-19-message-queue/
https://bbo-blog.tistory.com/47
https://velog.io/@sweet_sumin/Message-Queue

profile
어제보다 개발 더 잘하기 / 많이 듣고 핵심만 정리해서 말하기 / 도망가지 말기 / 깃허브 위키 내용 가져오기

0개의 댓글