본문 바로가기
회사

네이버 커머스 API 요청량 제한에 따른 카프카 조정

by 개발고구마 2024. 4. 22.

개요

네이버 스마트스토어 오픈 API가 기존 SOAP방식에서 커머스 API로 변경됐다.
변경 기준은 한 회사에서 보내는 요청량 기준으로 변경되면서 기준 제한이 심해졌다.

스마트스토어 커머스 api 요청량 제한 기준

사용하는 api 요청 제한량

1초에 2번 요청을 넘기면 그 이후 요청은 에러가 생겼다.
일단 기업 요청량에 따라 요청량을 변동할 수 있어서 10rps까지 늘렸지만 여전히 부족했다.
그리고 네이버 측에서도 무한정 늘려줄 수 없고 우리 회사측에서 요청량 제한에 맞게 필터링 에러가 안나도록 서버에서 로직 처리가 필요하다고 했다.

회사 서버 구조

회사 서버 구조는 그림과 같다.

서버가 여러 곳에서 카프카 토픽 발행해 쇼핑몰 요청 서버에서 컨슘한다.
거기서 각 컨슘별로 세마포어를 설정해 처리량을 조절해서 사용했다.
카프카가 각 서버 그룹 별로 있던지라 따로 카프카를 파지 않으면 요청량 조절이 힘든 상황이었다.
스마트스토어를 위한 새로운 카프카를 만들기에는 인프라 비용이 늘어나니 기존 연결된 카프카에서 처리하도록 결정됐다.

해결

현재 카프카 사용하는 곳은 12곳이었고 해외를 제외하면 10곳이었다.
10곳에 2개씩 요청량으로 하기로 결정했고 네이버에 20rps조정으로 요청했다.

컨슈머는 토픽을 읽어와 쓰레드를 새로 만들며 요청 처리 로직을 실행시켜주는 역할만 했다.
나는 기존 컨슈머 로직은 그대로 놔두고 카프카 토픽을 새로 만들었다.
새로 만든 토픽은 세마포어의 수를 2개로 줄였다
(실행 결과는 정상적으로 잘 됐지만 내부 로직 or 회사가 보여 캡쳐는 불가능..ㅠㅠ)