저희 monicar
는 렌터카 차량 관제 서비스입니다.
적어도 15000대 이상의 애뮬레이터가 시동on, GPS정보, 시동off를 http로 요청합니다.
특히 GPS 정보는, 받는 서버의 부하를 줄이기 위해 1초마다가 아닌, 60초마다 60개의 데이터를 요청합니다.
카프카를 통해 차량의 정보가 올바르게 저장이 되면 업체별로 차량의 운행정보, 위치, 과거 경로 조회, 실시간 경로 조회 등을 기반으로 차량을 관제할 수 있습니다.
대시보드
공지사항
위치조회
경로조회
운행기록>운행일지
운행기록>차량등록
알림창>점검현황
요청한 데이터를 단일 수집서버로는 한계가 있으며, 부하테스트의 결과로 인해 메시지 큐를 도입할 수 밖에 없었습니다.
CPU 70 이상이 되면 Scale Out, 30이하면 Scale in이 되도록 Auto Scaling을 설정하였습니다.
애뮬레이터 서버가 60초마다 요청한 60개의 데이터가 카프카를 통해 저장하여, 업체별로 차량의 정보를 조회할 수 있습니다.
Consumer Server가 현재 JPA saveall로 구현되어있어, 6시간 지연되어 적재되는 이슈를 발견하였습니다.
실시간 차량을 보여주기 위해, Consumer서버에서 mybatis의 bulk insert기능을 활용하여 데이터를 더 빠르게 적재될 수 있도록 할 예정입니다.
⚡ Tech Stack: Spring Boot, Spring Data JPA, Spring Security, QueryDSL, MyBatis, JWT, SSE, AWS EC2, AWS RDS, AWS ALB
🗺️ Tech Stack: Nextjs,Typescript,Vercel, Kakao Map
- 부하테스트 - 메시지 큐를 도입할 수 밖에 없었던 이유
- 메시지 큐 중에 Kafka를 도입한 이유 - 구체적으로 업로드 예정
- Route53 동작이 제대로 안될 때가 있다.
- SSE 응답이 계속 대기 중(Pending)으로 유지되는 문제
- Spring Transaction ‐ Propagation.REQUIRES_NEW 를 써보며 - 수정 예정
![]() 팀장(BE, Infra) : 박수현 |
![]() BE 팀원 : 김병훈 |
![]() BE 팀원 : 윤지윤 |
![]() FE 팀원 : 권혁준 |
![]() FE 팀원 : 김난아 |