-
카프카에 대해서 알아보겠습니다.
기업의 규모가 커지면서 많은 기업들이 MSA를 도입하였습니다.
그로인해 API통신이 많아지게 되었습니다.
API 통신이 많은 경우 해당 API의 처리 속도를 그대로 받으며 많은 호출이 있을 경우 서버에 부하가 발생하게 됩니다.
그러하여 메시지 큐를 통해 일부 API를 변경할 수 있습니다.
예를 들면 주문 시 주문의 결과 값을 프로모션측에 전달함으로 프로모션 팀에서 주문 횟수에 따른 이벤트를 처리하거나
상품팀에 주문데이터 중 일부를 넘겨 해당 상품 구매 카운트를 sum 하거나 하는 방식을 메시지큐를 통해서 수행 할 수 있습니다.
이럴 경우 MSA 마다 API 통신을 하는데 있어 거쳐가는 창구 (큐) 가 있기 때문에 호출에 대한 부담이 상대적으로 적어지게 됩니다.
메시지큐에는 여러 종류가 있는데 그 중 카프카의 경우는 몇가지 특징이 있습니다.
중앙 저장소와 비슷한 개념인 카프카 클러스트내 브로커가 있기에
보내는쪽에서 정상적으로 보냈다면 받는 쪽이 문제가 발생하였다고해서 보내는쪽에서 재전송을 처리할 필요가 없습니다.
즉 보내는쪽 , 받는쪽이 완전 분리가 되기에 오류의 발생 가능성 혹은 후처리의 많은 부분이 개선되었습니다.
또한 브로커의 경우에서도 파일의 원본과 복제본 등을 저장하기에 서버가 죽는 등 여러가지 가능성을 고려하여 설계 되었습니다.
아파치 카프카의 경우 비동기를 고려해 리액티브 카프카를 도입하여 사용할 수 있습니다.
'개발 > AWS' 카테고리의 다른 글
S3 쓰기 (4) 2024.09.06 dynamodb write (0) 2024.08.20 DynamoDB 활용기 (0) 2021.12.28 DynamoDB (0) 2021.12.16 Athena (0) 2021.12.16