IT 서비스/모임 관리 플랫폼7 [ MOIM ] 파티셔닝을 통한 알림함 조회 성능 개선 - 1 서론MOIM의 알림함 기능은 동아리 관리시스템인 만큼 사용자가 모임의 이벤트(알림)을 놓치지 않도록 하는 중요한 기능 중 하나입니다.하지만 서비스 특성상 다수의 사용자들에게 알림을 보내야하기 때문에 알림 데이터의 양은 가파르게 증가하였고, 읽기 및 필터링 성능 저하 문제가 나타났습니다. 기존에는 모든 알림 데이터를 하나의 테이블에서 모두 관리하고 있습니다.이로 인해 알림 테이터가 수백만 건 이상 쌓이면서 조회 성능이 저하되었습니다. 또한 정리가 늦어질수록 계속해서 데이터가 많아지면 구조 개선이 어려워지기 때문에 우선순위를 높여서 진행하게 되었습니다. 알림서비스의 특징은 다음과 같습니다.1. 모든 종류의 알림을 조회할 수 있다.2. 읽은 알림, 읽지 않은 알림을 구분해서 조회할 수 있다. 3. 최근 2주.. 2025. 5. 9. [ MOIM ] Batch Insert를 활용한 알림 서비스 DB 쓰기 성능 향상 테스트 환경1초에 100개의 요청을 전송. 3분동안 진행쓰레드 수 : 1000Ramp-up 시간 : 1s지속시간 : 180s상수 처리량 : 6000전체 데이터 분석평균 TPS가 1도 잘 안나오고,1분간 insert가 17274로 db 부하도 상당한것을 볼수있습니다. 다양한 알림들이 존재하고 저희 서비스에 알림은 핵심이기 때문에 이를 최적화 하여야만 합니다. Batch insert를 사용하자.// 알림을 저장한다.List notificationList = new ArrayList();for(String receiverTrackingId : command.getReceiverTrackingIds()) { Notification notification = Notification.from(command, .. 2025. 5. 4. ECS 배포중 트러블 슈팅 2편 - Eureka에 잘못된 IP가 등록되는 문제 문제 상황Spring Cloud Eureka를 사용하는 MSA 구조에서, ECS Fargate 환경에 배포된 서비스들이 잘못된 IP로 Eureka에 등록되는 현상이 발생했습니다. 모든 서비스가 Eureka에 등록될 때 IP 주소가 169.254.172.2로 고정됨.Gateway로 요청시 다음과 같은 오류 메세지를 받음finishConnect(..) failed: Connection refused: /169.254.172.2:8082 원인은?원인은 Fargate의 네트워크 구조와 Eureka의 기본 IP 등록 방식 때문이었습니다.Eureka는 기본적으로 컨테이너가 실행되는 호스트의 IP 또는 호스트 네임을 가지고 주소를 자동 등록합니다. 하지만 Fargate는 EC2와 달리 호스트 머신 이 없는 서버리스.. 2025. 5. 1. ECS 배포 중 트러블 슈팅1편- ECS Fargate 환경에서의 서비스 간 통신 문제(with Eureka) 문제 상황Spring Cloud 기반 MSA 아키텍처를 ECS Fargate 환경에서 구성하던 중, 다음과 같은 문제가 발생했습니다:각 컨테이너는 Fargate 환경에서 잘 실행되고 있음Eureka 서버에 서비스들을 등록해야 함기존처럼 http://eureka-service/eureka로 접근을 시도했지만 서비스 검색이 되지 않음 원인 분석이 문제의 원인은 다음 두 가지입니다:Fargate는 EC2처럼 호스트 기반 DNS를 기본적으로 지원하지 않음EC2에서는 컨테이너 이름 또는 서비스 이름으로도 DNS 해석이 가능하지만,Fargate는 각 컨테이너가 독립된 ENI(Network Interface)를 가지며 DNS 해석이 불가능합니다.ECS 서비스 디스커버리 설정이 빠져 있었음Eureka 서버에 등록을 하.. 2025. 5. 1. 이전 1 2 다음