api 응답시간

api 응답시간

QA

api 응답시간

답변 3

본문

업체에서 주기적으로 api를 쏴주고있어

 

이걸 받아서 제 디비에 넣고있는데

 

api받고 응답을 10초이내에 안하면 다시 보내줘서 디비가 중복으로 들어가고있습니다.

 

응답은 api받는 페이지 맨위에


http_response_code(200);

이거 넣어줬고 매번 중복은 아니고 중간중간 이런현상이 발생하는데

 

이유가뭘까요?

keep-alive 도 문제인가해서 off로 했고, 또 다른 이유가있을까요?

10초까지 걸릴만한게 뭐가있을까요?

이 질문에 댓글 쓰기 :

답변 3

실행코드 내에 시간을 찍어서 로드가 오래 걸리는 구간을 줄여야 할텐데...

아무리 그래도 10초는 너무 짧은거 아닌가 싶어요 pg사도 30초 혹은 1분정도 기다려주는 걸로 알고있는데...

DB 중복처리는 등록할 값들의 유일성을 만들수 있는 경우

primary key 나 unique key 로 제약조건을 추가하면 방지할수 있고

 

처리시간 문제 같은 경우 자세하게 디버깅을 해봐야 알수 있으며

많은 요청이 한순간에 몰리는 경우는 백그라운드 큐 처리 형태로 어느정도 보완하는 방법이 있습니다.

실제로 2건이 오는경우도 있어서 유일성만들수는 없고,

어느쪽에서 시간이 지연되는걸까요?

a.php를 5천번 호출한다했을때

호출은 동시에 하는데, 10초안에 5천건에대한 response를 못하는게 문제일까요?

10초안에 5천건에대한 response를 못하는건 문제점 같고
문제점이 발생하는 원인을 파악하기 위해서는 적지않은 디버깅과 테스트가 필요할수 있습니다.

가장 기본적인 시작은 프로그램 최적화 부터 시작해서 쿼리 최적화 정도까지를 확인하는 것입니다.
response 의 경과시간을 로그로부터 추출해서 예상하는 지연이 실제 발생하고 있는지
발생한다면 지연의 분포도를 average, max 정도로 확인 후
프로그램에 문제가 있는지 쿼리에 문제가 있는지를 수정하며 파악 해볼수 있습니다.

위 문제를 개선하고도 요구사항에 만족하지 못하는 경우
어플리케이션 및 플랫폼 하드닝, 하드웨어 스펙, 네트워크 관련 확인이 추가 필요할수 있습니다.

Table lock을 사용해 보세요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 1,543
© SIRSOFT
현재 페이지 제일 처음으로