마이크로서비스 세번째 발표

Jin·2022년 6월 21일
0

DevOps

목록 보기
25/25
  • [C817] 메시지 서비스로는 대표적으로 Apache Kafka와 Amazon SQS, Amazon Kinesis가 있습니다. 각각은 어떤 차이가 있나요?

Apache Kafka

2010년 Linkedln에서 플랫폼 사용자들의 수 많은 구인구직 정보들을 한 곳에서 효율적으로 관리하기 위해 개발한 Open Source Message Queue System. 분산형 스트리밍 플랫폼.
특징은 대용량 실시간 로그처리에 특화되어 설계된 메시징 시스템으로 TPS가 매우 우수하고 메시지를 파일에 저장하기에 재시작을 해도 메시지 유실 우려가 덜하다. 장점은 쉽고, 빠르고 강력하고 확장성이 좋지만, 관리가 어렵다는 단점이 있다.

Amazon Kinesis

AWS의 스트리밍 데이터를 위한 플랫폼.
Kafka를 참조하여 개발되었다.
관리 서비스가 용이하고 다른 aws와 연계가 편하다.
결국 Apache Kafka, Amazon Kinesis 둘다 데이터 파이프라인의 역할을 하며, 목적은 데이터 이동간 Seamless, Real-time 효익 달성에 초점이 맞추어져 있다.

SQS(Amazon Simple Queue Service)

Queue 서비스, 메시지를 Pull형으로 처리한다.
standard 방식과 fifo 방식이 있다. standard 방식은 scale out이 무한대로 가능한 대신, 메시지의 전달이 exactly once가 아닌 at least once 까지만 보장 된다. 또한 메시지의 순서도 best effort로, 보장되지는 않는다. fifo 방식은 TPS 제한이 있는 대신, 메시지 전달이 exactly once로 보장되며 메시지의 순서가 보장된다.
SQS는 애플리케이션 통합, 분산 시스템 연계에 적합하다.

[https://cwiki.apache.org/confluence/display/KAFKA/Powered+By]

[https://insidebigdata.com/2016/04/28/a-brief-history-of-kafka-linkedins-messaging-platform/]

[https://aws.amazon.com/ko/streaming-data/]

[http://www.itcheerup.net/2019/01/kafka-vs-kinesis/]

[https://aws.amazon.com/ko/sqs/]

[https://www.youtube.com/watch?v=IafgrRB2quY]

  • [C818] 웹 서비스에서 메시지 브로커(메시지 큐)를 이용해 비동기적인 방법이 활용되는 사례를 하나 이상 찾아보고, 어떻게 활용되는지 설명하세요.

요청을 처리하는 방법에는 클라이언트가 요청을 보내면 처리한 다음에 응답이 오는 동기식 방식과, 요청을 보낸 후 비즈니스 로직이 처리가 완료되지 않은 상태에서 다음 로직을 진행하는 비동기식 방식이 있다. 이러한 비동기식 방식에는 메시지 큐를 사용한다. 메시지 큐는 들어온 요청을 쌓아놓는 임시 공간으로, 쌓여있는 요청 메시지는 비즈니스 로직에 의해서 처리된다. 이러한 비동기적 방법에서는 에러 처리에 가장 신경을 써야한다.

비동기 메시지 처리에서는 4가지 정책을 사용하고 있다.

  1. 재처리-Retry
  2. 무시-Ignore
  3. 알림-Notify
  4. 사람이 처리하도록 함-Human Interaction

…이거 너무 어려운데..

https://docs.microsoft.com/ko-kr/azure/architecture/guide/technology-choices/messaging

https://tanzu.vmware.com/developer/blog/understanding-the-differences-between-rabbitmq-vs-kafka/

https://docs.oracle.com/cd/E19148-01/820-0532/6nc919fai/index.html

질문과 다르지만, 조사할 수 있는 만큼만 했다. 어제 병원가느라고 하루 온종일 빠졌더니 줌 세션도 못듣고..
하아아..

profile
Today I Learned..

0개의 댓글