2022-12-06-TIL

Today I Learned

HA 구성

HA(High Availability, 고가용성) 구성이란, 가용성을 극대화 시키는 구성을 말하는 것으로 ‘클러스터링, 이중화, RAID'는 HA를 이루기 위한 방식으로 볼 수 있다. HA 구성은 주로 ‘서버 이중화'라는 용어와 동일하게 쓰이기도 한다. 여기서 ‘가용성'이라는 말은 시스템이 고장나지 않고 잘 동작한다는 의미이며, 이는 곧 시스템 장애가 발생했을 때 얼마나 빠른 시간 내에 정상적으로 서비스가 복구되는지를 분석하는 척도이다. 따라서 HA는 절대 고장나지 않는 것을 말하며, 가용한 시간을 99.9% 같은 정도로 표현한다. 1년 내내 고장나지 않고 잘 돌아가야 한다는 뜻이다.

이를 위해 HA 솔루션이 갖추어야 할 기본 기능은 크게 두 가지이다. 첫 번째는 데이터 복제 기능으로, HA 구성된 두 대의 서버 중 1번 서버에 장애 발생 시, 2번 서버가 대상 서비스를 바로 서비스하기 위해서는 양쪽의 데이터는 항상 100% 동일해야하는 무결성을 보장해야 한다. 이렇게 데이터를 동일하게 맞추기 위해서 데이터 복제(Data Replication) 기능이 반드시 필요하다. 두 번째는 장애 감시 기능으로, HA 구성 시 1번 서버는 서비스 운영을 맡게 되며, 2번 서버는 1번 서버에 장애가 발생 시 서비스를 운영하기 위한 대기 상태로 구성이 된다. 이러한 구성은 Active - StandBy HA 구성이라고 한다. 이를 위해서는 2번 서버에서 장애 발생을 감지하기 위한 소프트웨어 로직이 필요하다.

  • https://en.wikipedia.org/wiki/High_availability
  • https://www.techtarget.com/searchdatacenter/definition/high-availability
  • https://dataonair.or.kr/db-tech-reference/d-lounge/expert-column/?mod=document&uid=54126
  • https://www.ibinfo.co.kr/computer-tip-2/%EC%84%9C%EB%B2%84-%EC%9D%B4%EC%A4%91%ED%99%94ha-%EC%86%94%EB%A3%A8%EC%85%98%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC
  • https://yoonwould.tistory.com/152#:~:text=HA%20(High%20Availability%20%3A%20%EA%B3%A0%EA%B0%80%EC%9A%A9%EC%84%B1%2C%20%EA%B3%A0%EA%B0%80%EC%9A%A9%EB%8F%84)&text=%EB%94%B0%EB%9D%BC%EC%84%9C%20HA%20%EA%B5%AC%EC%84%B1%EC%9D%B4%EB%9E%80%20%EC%9D%B4%EB%9F%AC%ED%95%9C,%EB%B0%A9%EC%8B%9D%EC%9D%B4%EB%9D%BC%20%EB%B3%BC%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.

DDEX Choreography

  • https://kb.ddex.net/display/ECHO17FTP/8.1+Choreography

MyBatis vs Sprig Data JPA

  • https://stackoverflow.com/questions/33652936/spring-data-jpa-mybatis
  • https://dev-coco.tistory.com/77
  • https://incheol-jung.gitbook.io/docs/q-and-a/spring/jpa-vs-mybatis
  • https://stackoverflow.com/questions/451845/orm-performance-cost

Spring Data JPA Performance

  • https://thorben-janssen.com/6-performance-pitfalls-when-using-spring-data-jpa/
  • https://www.jrebel.com/blog/how-to-improve-jpa-performance
  • https://stackify.com/find-hibernate-performance-issues/
  • https://stackoverflow.com/questions/8028340/performance-problems-using-jpa
  • https://dzone.com/articles/finding-and-fixing-spring-data-jpa-performance-iss
  • https://www.fusion-reactor.com/blog/finding-and-fixing-spring-data-jpa-performance-issues-with-fusionreactor/
  • https://vladmihalcea.com/jpa-hibernate-performance-issues/
  • https://www.baeldung.com/hibernate-common-performance-problems-in-logs
  • https://docs.oracle.com/cd/E17904_01/core.1111/e10108/toplink.htm#ASPER99173
  • https://www.adservio.fr/post/hibernate-performance-best-practices