[해내기] 인터페이스와 async 통신을 활용해 응답 시간을 단축하자

serious_yeon·2023년 4월 2일
0

해내기

목록 보기
7/8
tomcat queue
인터페이스
async

tomcat queue

was로 들어온 request는 톰캣 큐에 쌓인다. 그런데 톰캣 queue의 캐파보다 더 많은 request가 들어온다면? was가 터질 수 있다.

인터페이스의 필요성

이러한 문제를 방지하기 위해 was와 request queue를 분리할 필요가 있다. 더하여, 인터페이스에 대한 요건이 추가될 수 있다. 통신 방식을 async와 sync로 정한다든지, dto 간 맵핑을 수행해준다든지 하는 것들이다.
인터페이스는 새로운 개념이 아니다. 예전부터 사용해오던 것이고. kafka는 오픈소스로 개발해 유명해진 인터페이스이다. 금융권에서는 eai, mca, fep 등의 인터페이스 제품을 써왔다.

async

B 서버를 호출하는 데 response가 오기까지 10초가 걸렸다. 이거 때문에 우리 서버가 맨날 터져서.. async로 호출하는 것을 고려했었다. javascript나 scala에서는 손쉽게 사용했었으니까 쉬울 줄 알았다. 그런데 java에서 async를 구현한다는 게 생각보다 복잡했다!!

javascript 예시를 살펴보자. async를 구현하려면 비동기 동작을 쌓아두는 task queue와 이 큐를 관리하는 event loop가 필요하다. 이거를 언어나 프레임워크에서 지원해준다면 땡큐지만, 그렇지 않다면 서버 단에서 구현해야 한다 ㅎㅎ

결국은 사내 인터페이스 시스템을 접하고, 인터페이스에서 지원하는 async를 이용해서 문제를 해결했다.

0개의 댓글

관련 채용 정보