해당 페이지는 link 내용을 보고 정리하는 페이지 입니다.
// TODO 2023-02-15 오전 3:33 카프카 / 페인 클라이언트 페이지 만들어서 정리
// after 각자 한번씩 테스트 코드를 사용해보는게 좋지만 현재 상황상 우선순위가 더 높은 일부터
프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나
비동기 메시지를 사용하는 응용 프로그램들 사이에서 데이터를 송수신 하는 것을 의미 (메시지 지향 미들웨어)
위의 그림과 같이 메시지 큐는 메시지를 임시로 저장하는 간단한 버퍼
(생산자(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/
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