본문 바로가기
카테고리 없음

Connection 통신 중 실패 시 벌어지는 상황과 해결 방안

by 무대포 개발자 2020. 7. 10.
728x90
반응형

이 문서는 추후 다시 볼 목적으로 정리한 글입니다.


장애 상황 1
  • Connection 통신 시 TCP 통신이 이루어 짐.
  • TCP 통신을 잠깐 설명하고 넘어가면 동기 통신이며, 메시지를 주고 받는 안전한 통신 프로토콜이다.
  • 클라이언트와 서버가 TCP 통신 중 장애가 발생했다고 가정하면, 클라이언트나 서버는 응답을 기다리는 상황이 발생할 수 있음.
  • 위와 같이 장애가 발생하면 OS 의 TCP Timeout 이 발생할 때까지 '대기' 상태가 됨.

장애 상황 1 해결 방안
  • Driver-Level 에서의 Socket timeout 을 설정 함.
  • 여러 드라이버들이 위와 같은 Socket timeout을 설정하며, HikariCP 또한 지원 함.

장애 상황 2
  • JVM 또는 OS 에 의해 DNS Caching 이 생기는게 또 다른 문제 상황이라고 설명하고 있음.
  • Database 에 장애가 발생해 Recovery 하고 있는데, Database 의 hostname 이 여전히 고정 값인데, 데이터베이스 IP 바껴버리면 Caching 된 데이터베이스 정보가 남아있기에 Recovery 에 영향을 미침.

장애 상황 2 해결 방안

Reference : https://github.com/brettwooldridge/HikariCP/wiki/Rapid-Recovery

댓글