본문 바로가기

전체 글

(64)
Spring Boot + Quartz 적용하기 - 2 앞서 Quartz에 대해서 개념을 알아보았다해당 포스팅은 Spring Boot  + Quartz를 활용하여 스케줄링을 구현해보겠습니다.    1. SchdulerJob과 Trigger를 연결하여 Job을 실행시키는 역할을 수행하는 인터페이스입니다.Spring + Quartz 사용으로 ApplicationContext에 의해 관리되는 SchedulerFactoryBean을 생성해주었다.SchedulerFactoryBean에 JobFactory를 등록하여 Job도 컨텍스트로 관리될수 있게 설정된다. package com.kr.quartz.config;import com.kr.quartz.listener.MyJobListener;import com.kr.quartz.listener.TriggerListener..
Spring Boot + Quartz 적용하기 - 1 Spring Boot + Quartz를 이용하여 스케줄링 적용 과정을 포스팅하였습니다. 1. 스케줄링(Scheduling) 이란? 스케줄러란 일정한 주기 마다 반복적으로 작업을 실행하는 도구를 일컫는 말이다. 개발을 진행하는 과정에서 주기적으로 실행해야하는 작업이 필요한 경우가 생긴다. 이러한 경우 스케줄링 설정을 이용하여 작업을 처리할 수 있다. 자바에서는 다양한 스케줄러를 지원하게되는데 Quartz, Spring Scheduler, ScheduledExecutorService 등이 존재합니다.  ※ 배치 스케줄링(Batch Scheduling) 이란?배치 스케줄링이란 대량의 데이러터 처리를 자동화 작업으로 구현것을 의미합니다. 이번장에서는 배치 스케줄링을 적용하지 않으며 추후에 스프링 배치 포스팅을 ..
CPU 과부화 장애 트러블슈팅 개인적으로 구성해둔 미니 PC 서버에서 이상감지가 되었다. Zabbix를 통하여 간단하게 서버 리소스 상태만 감지하고 있었는데 어느날 부터 갑자기 CPU 점유가 100%가 넘어가기 시작하며, 나중에는 서버가 죽어버렸다. 일단 서버를 재부팅하였고 다시 리소스가 정상화 되었으며 트러블 슈팅을 하기로 생각했다. 위 그림을 보면 CPU 점유가 100%가 넘었고 장애가 발생되었다. 실제로 운영하는 서비스가 저렇게 되면 대형사고와 마찬가지다. 일단 개인적으로 구축한 서비스들이 전부다 지연이 되었고 동작 불가상태까지 넘어갔다.  첫 째로 현재 CPU 상태를 보기 위하여 서버 상태를 체크하였고 위 스크린샷을 보면 알 수 있듯이 특정 PID (39521)이 말도안되는 높은 CPU 점유를 가지고 있었다.해당 PID cmd..