분류 전체보기
-
카오스 몽키 (Chaos monkey)배움/기타 개발 이야기 2022. 7. 31. 14:11
그 이름부터 흥미로운 '카오스 몽키'는 비디오 대여업을 하던 넷플릭스가 비디오 스트리밍 서비스로 전환하던 초기에 자사 시스템의 탄력성과 회복성을 제고시키기 위해 고안한 소프트웨어 도구이다. 카오스 몽키가 하는 일은 서비스를 공급하는 인스턴스를 무작위로 셧다운시켜버리는 것이다. 이렇게 함으로써 엔지니어는 추후 예상치 못한 장애가 발생했을 때 시스템이 스스로 복구할 수 있게 하는 등의 작업을 미리 할 수 있게 된다. 이는 이후 '카오스 엔지니어링'이라는 방법론으로 발전하여 현대 소프트웨어 개발의 원칙 중 하나로 자리잡게 된다. 참고 : https://github.com/Netflix/chaosmonkey
-
Kafka - Acks 옵션배움/백엔드 2022. 7. 26. 10:50
메시지의 손실을 방지하기 위한 전달 완료 확인 옵션인 acks 옵션. 간단히 말하면, acks = 0 이면 메시지 전달을 확인하지 않는다. acks = 1 이면 브로커 중 리더에 대해서만 메시지를 수신했는지 확인한다. acks = -1 이면 리더와 팔로워 브로커 모두에 대해 메시지를 수신했는지 확인한다. 몇 개의 팔로워까지 확인을 하는지는 추가적인 옵션(min.insync.replicas)에 따라 설정 가능하다. 자세한 내용은 다음 링크의 글쓴이분이 자세히 설명을 해주셨으니 참고바람. https://www.popit.kr/kafka-%EC%9A%B4%EC%98%81%EC%9E%90%EA%B0%80-%EB%A7%90%ED%95%98%EB%8A%94-producer-acks/
-
Transaction에 대해배움/백엔드 2022. 7. 18. 21:39
여러 읽기/쓰기를 논리적으로 하나로 묶은 단위 트랜젝션 시작 - 여러 쿼리 실행 - 커밋(DB에 반영) 또는 롤백 모두 커밋(DB에 반영) 또는 롤백 이러한 트랜젝션(최소 단위)가 없다면, 클라이언트가 요청을 보내고 다시 그 결과를 받기 전까지 여러 쿼리문이 실행될 텐데, ex) 1.1: select - 1.2: update - 1.3 insert .... 여기서 1.3에만 문제가 발생한다면?... 위의 쿼리문이 실행되는 도중 문제가 발생해 중단된다면 원상복귀를 위해 1.3을 제외한 1.1, 1.2만 revert해야하는 참사가 발생함. 이러한 상황을 그저 하나의 트랜젝션을 롤백해주는 것만으로 해결. 트랜젝션의 범위는 커넥션 기준. 여러 메서드 호출이 하나의 커넥션으로 묶여야함. 그렇지 않으면 이미 특정 ..