spring2 단일체(singleton) 패턴 디자인 패턴하면 가장 먼저 생각나는 싱글톤 패턴인데, 이는 단 하나의 클래스 인스턴스만을 갖도록 보장하고 전역적인 접근을 갖는다. 보통 싱글톤 패턴은 안티패턴으로 OCP에 위배되는 경우가 발생해서 테스트, 디버깅이 어려워지고 멀티 스레드 환경에서 동기화 처리를 안하면 여러 개가 생성된다고 얘기하며(어지간하면 피하라고..) 유의해서 사용하면 공통으로 객체를 사용되는 데 구현할 수 있다. Logger나 Thread / DB Connection Pool도 싱글톤 으로 구현돼있다. 보통 싱글톤 패턴에 동기화라면 서브클래싱해서 아래와 같이 작성한다. public class Singleton { private static Singleton singleton; public syncronized Singleton ge.. 2020. 5. 26. ThreadPoolTaskExecutor RejectedException 발생 Executor 로 스레드 관리가 용이해졌는데, https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html 이를 활용해서 비동기로 카프카에 이벤트 발생하여 전달하고 있다. TaskExecutor 가 설정해놓은 사이즈(PoolSize , QueueCapacity) 를 초과하면 OOM 이 발생하여 RejectedException 이 발생하여 중요한 이벤트들이 reject 되어버린다. RejectedExceptionHandler 기본값은 AbortPolicy(task reject 후에 throw exception)인데, ThreadPoolExecutor.CallerRunsPolicy를 설정하여 모니터링 시스.. 2017. 5. 31. 이전 1 다음