Go로 PostgreSQL 프록시 만들기 (17) - Channel Blocking과 Connection Poisoning 버그 수정
Webhook 동기 호출이 Audit 이벤트를 마비시키는 Channel Blocking과, 죽은 커넥션이 풀에 반환되는 Connection Poisoning 버그를 분석하고 수정한다.
Webhook 동기 호출이 Audit 이벤트를 마비시키는 Channel Blocking과, 죽은 커넥션이 풀에 반환되는 Connection Poisoning 버그를 분석하고 수정한다.
Go의 mutex와 channel을 활용해 커넥션 풀을 직접 구현한다. idle timeout, max lifetime, 헬스체크까지.
설정 파일 Hot Reload 시 concurrent map read/write로 프록시가 즉사하는 Critical 버그를 분석하고, sync.RWMutex로 수정한다.
ConcurrentHashMap 등 Java 동시성 컬렉션의 내부 구조와 사용 시나리오 가이드
ThreadPoolExecutor 파라미터 튜닝, 적정 스레드 수 공식, 모니터링 전략
Race condition부터 JMM, 스레드풀/락 선택, 디버깅까지: 백엔드에서 필요한 자바 동시성 기본기
프로세스/스레드 차이, 컨텍스트 스위칭, 스케줄링 알고리즘, 동기화 기본
서버가 여러 대일 때 synchronized는 무용지물입니다. Redis와 Redisson을 활용한 안전한 락 구현