트러블 슈팅

상황 WebClient를 사용해서 통신을 하고 있는데, 모종의 이유로 통신이 전혀 되지 않는 상황. 이로 인해 외부 서버와 통신하는 어플리케이션에서 장애가 발생함. 장애가 발생한 어플리케이션에서는 타임 아웃등의 에러가 떨어지는 중. 원인 WebClient는 API 요청 시 Connection Pool을 사용한다. 이미 사용 중이지 않은 Connection이 있다면 이를 재사용하고, 그렇지 않다면 새로운 Connection을 맺어 요청을 처리한다. 요청들은 대기열(Event Queue)에 대기하다가 순차적으로 처리된다.    여러 WebClient 인스턴스를 별도로 선언해 사용하더라도, 각 WebClient에 별도의 Connection Pool을 설정하지 않으면 글로벌 Queue를 공용으로 사용하게 된다...
상황 특정 토픽을 Consume 어플리케이션에서 장애가 난 상황. 이로 인해 Lag이 천정부지로 치솟고 있었다. 또한 이 토픽을 사용하는 kafka to s3 커넥터에서도 장애가 발생하였다. 원인 해당 토픽을 사용하는 어플리케이션들은 해당 토픽의 Value를 Json으로 기대하여 Json 파싱하고 있었다. 그런데 유효하지 않은 데이터가 들어가서, Json Parsing 에러를 발생시킨 것. 해결 방안 우선 장애가 발생한 파티션을 찾아야했다. 장애가 발생한 파티션을 찾기 위해서 쉘 스크립트를 만들어 돌려서, 장애 발생 토픽을 찾아냈다.BROKER="브로커 호스트"GROUP="장애가 발생한 토픽을 사용하는 컨슈머 그룹 명"TOPIC="토픽 명"MAX_MESSAGES=15 (콘솔에서 보여줄 메세지 갯수)/op..
상황 (Airflow) 배치 날짜값 오차로 인한 통계값 오류가 발생한 이슈 1상황Airflow를 이용해서 low한 통계 데이터를 집계하는 API를 호출하여 daily 과금 금액과 total 과금 금액을 집계한다. 이때 과금 금액을 "사용한 값" 이라고 하자. "사용한 값"은 00시에 0으로 리셋해준wise-dev-seop.tistory.com 위 글에 이어 추가로 과소진이 발생한 이슈. 간단히 설명하자면 통계값을 업데이트 할 때 전날 늦은 시간에 돌았던 select 쿼리가 다음날 완성되면서 하루 전 날 값이 엎어쳐지는 이슈였다. 이를 해결하기 위해서 시간값을 세션 변수에 담아두고 업데이트 시점에 이 날짜가 동일한지(하루 지나지 않았는지) 확인해주는 작업을 해주었었다. 이렇게 잘 해결되었으나 또 추가로 전..
상황Airflow를 이용해서 low한 통계 데이터를 집계하는 API를 호출하여 daily 과금 금액과 total 과금 금액을 집계한다. 이때 과금 금액을 "사용한 값" 이라고 하자. "사용한 값"은 00시에 0으로 리셋해준다. "사용할 값"은 하루에 총 소진되어야 할 시간 * 스케줄(06시 ~ 12시에만 소진되어야 하는 등의 설정이 가능하다) 그런데 리셋을 해주었음에도 불구하고 "사용할 값"이 갑자기 치솟아 과소진 된 이슈가 있었다. 원인쿼리의 구성은 이랬다. - 원시 통계 데이터를 가지고 1차 가공 디비에 업데이트 (따라서 시간이 오래 걸리고, Replace Into와 셀렉트 절을 사용한다)REPLACE INTO 1차 가공 테이블 (date, 통계 데이터) SELECT date, 식별자, 통계에 필요한..
지혜와 본질을 추구하는 자
'트러블 슈팅' 카테고리의 글 목록 (3 Page)