본문 바로가기 메뉴 바로가기

Hyo's Dev Log

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

Hyo's Dev Log

검색하기 폼
  • 분류 전체보기 (38)
    • Dev Log (7)
    • 디자인 패턴 (3)
    • MySQL (1)
    • RabbitMQ (1)
    • Elasticsearch (2)
    • 아키텍처 (1)
    • Redis (4)
    • Spring (3)
    • Kotlin (2)
    • Java (1)
    • JPA (Hibernate) (4)
    • Tomcat (1)
    • TIL (8)
    • 일기 (0)
  • 방명록

2022/09 (1)
트래픽이 높을 때 발생하는 OutOfMemoryException을 해결하고, 처리 성능을 높인 경험

개인 프로젝트로 SNS 피드 서비스를 개발하면서 팬아웃(포스팅 전송) 기능의 성능을 높이고자 Kotlin의 Coroutine 및 Dispatcher.IO 워커 스레드를 사용하다가 성능 테스트를 통해 OutOfMemoryException을 발견하게 되었고, 이를 해결하고 처리 성능을 높인 경험을 소개하려고 한다. 문제의 발단 일단 팬아웃(포스팅 전송) 기능은 내가 SNS 게시물을 올리면, 나를 팔로우하는 사람에게 피드를 전송하는 기능이다. 그래서 팔로워들은 자신의 피드에서 나의 게시물을 볼 수 있다. 그리고 아키텍처는 다음과 같이 설계했다. Server에서 Kafka로 Feed 이벤트를 발행할 때, 아래와 같은 로직으로 구현을 했다. 우선 execute 메서드 안에서는 CoroutineScope(Dispa..

Dev Log 2022. 9. 28. 21:42
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • Github
  • LinkedIn
TAG
more
«   2022/09   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바