일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 자바
- Python
- scala
- go
- gradle
- programmers
- 코드워
- codewars
- OOM
- 튜토리얼
- 리눅스
- 주키퍼
- Go언어
- boj
- HBase
- redis
- docker
- golang
- 알고리즘
- Java
- dynamic programming
- 스칼라
- zookeeper
- DP
- Linux
- 동적프로그래밍
- 파이썬
- 프로그래머스
- leetcode
- 문제풀이
- Today
- Total
목록2019/09 (3)
파이문
FailSafe 를 사용한 Java Retry 예제 Delay 시간을 주면서 Retry 를 하려고 하다가, FailSafe 라는 오픈 소스를 발견했다. Star 도 2k 개가 넘고, 최근 (8월) 까지도 커밋하길래 사용하기로 하였다. 사실 Retry 관련해서 스택오버플로우 검색을 했는데, FailSafe 개발자가 열심히 홍보하더라 Usage 사용하기 전에 RetryPolicy 라는 클래스로 정책을 생성해야 한다. RetryPolicy 생성 아래의 예제는 ConnectionException 이 날 경우 1초의 Delay 로 3번 Try 를 하게 만드는 코드다. RetryPolicy retryPolicy = new RetryPolicy() .handle(ConnectException.class) .withD..
Zookeeper 주키퍼는 기본적으로 분산 시스템을 위한 코디네이터다. 주키퍼 주키퍼는 데이터를 디렉토리 구조로 관리하며 key-value 스토리지 처럼 key 로 접근 가능하다. 물론 value 를 사용하지 않아도 된다. 그럴 땐 임의로 "" 와 같이 빈 문자열을 넣어준다. 이러한 디렉토리 구조는 (당연하겠지만 tree 형태) 계층을 가지고 있고 각 데이터 노드를 znode 라고 부른다. 이러한 znode를 다루는 주키퍼 작업을 recipe 라고 부른다. 주키퍼의 쿼럼 주키퍼의 쿼럼은 적어도 하나의 앙상블 (서버군) 과 겹쳐야 하며 과반수가 넘어야 한다. 만약 서버가 5대라면 쿼럼은 3개여야 한다. 만약 5대의 앙상블 서버 들 중 2대만 쿼럼으로 지정한다면 아래와 같은 시나리오가 발생한다. 서버 s1,..
Split Brain 이란? 시스템의 두 부분 이상이 독립적으로 진행되어 시스템이 일관되지 않게 동작하는 것을 말한다. 분산 시스템에서 마스터-슬레이브 상태에서 네트워크 이상으로 인해 슬레이브는 마스터가 이상이 있다고 판단한다. 때로는 맞을 수도 있고 때로는 오탐일 수도 있다. 만약 잘못된 판단임에도 슬레이브 중 하나가 마스터로 선출이 되면 두 개의 마스터가 존재하게 된다. 이런 경우를 Split Brain 스플릿 브레인이라고 부른다.