작은 파란색 원 : Oracle 문서에서는 regular young-only collection 이라고 표현, Young 영역에 대한 GC 발생 (STW) 작은 분홍색 원 : Oracle 문서에서는 multiple mixed colletions 이라고 표현, Young 과 Old 영역 모두에 대한 GC 발생 (STW) 원의 크기는 STW 의 소요 시간과 비례한다. G1GC 는 regular young-only collection 만 주기적으로 진행 GC 로그 상 Eden 영역이 가득 찼을때 regular young-only collection 이 트리거되는것으로 보임 regular young-only collection 만 진행하다가 Old 영역의 사용량이 임계치에 도달하면 Initial Mark 단계를..
운영 중인 서버에서 ConcurrentModificationException 가 발생하여 원인 파악을 시작하였다. 예외가 발생한 코드 재현 Map reduce = IntStream.range(0, 100) .parallel() .mapToObj((num) -> { Map map = new HashMap(); map.put(num, num); return map; }) .reduce(new HashMap(), (a, b) -> { a.putAll(b); return a; }); 에러가 발생한 로직을 간단하게 요약하면 위와 같이 정리가 되는데 운영 코드에서는 mapToObj 부분에서 I/O 를 실행하고 있다. I/O 를 Parallel 하게 실행하기 위하여 Stream 의 Parallel 을 사용하고 있다...
ExecutorService executorService = Executors.newFixedThreadPool(3); Stream.of(3, 2, 1) .map((i) -> CompletableFuture.supplyAsync(() -> { try { System.out.println(Thread.currentThread().getName() + " : start"); Thread.sleep(i * 1000L); System.out.println(Thread.currentThread().getName() + " : end"); } catch (InterruptedException e) { throw new RuntimeException(e); } return i; }, executorService)) ..
현상 Docker 이미지로 만들어져있는 Zookeeper 를 구성할때 아래와 같은 에러가 발생하고 zookeeper cli 로 /get 를 해보아도 timed out 이 발생 2023-07-27 09:18:07,435 [myid:3] - WARN [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@584] - Cannot open channel to 2 at election address /10.0.0.1:3888 원인 Zookeeper 는 아래와 같이 3개의 포트를 사용한다. 2181 : Client 가 zookeeper 에 접근하기 위한 포트 2888 : Node 간의 통신에 사용. Follower 커넥션에 사용됨. (설정 파일에 따라 달라질 수 있..
AWS 에서 DynamoDB 로컬 환경을 위한 테스트 환경을 제공한다. Local 에서 DynamoDB 실행하기 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html Deploying DynamoDB locally on your computer - Amazon DynamoDB The YAML scripts require that you specify an AWS access key and an AWS secret key, but they are not required to be valid AWS keys for you to access DynamoDB local. doc..
TLS 는 SSL 과 같은 의미이여 TCP 통신에서 오고가는 데이터를 암호화하기 위한 프로토콜이다. TLS 과정 인증서 발급 TLS 인증을 하고자하는 서버가 CA (Certifiacate Authorities : 인증서 발급 기관) 로부터 인증서를 발급 받는다. Server 는 공개키/비공개키를 생성하고 인증서 신청시 공개키를 CA 에 전달 CA 는 인증서에 Server 의 공개키를 포함하여 인증서를 생성 CA 는 인증서 내용을 Hash 처리한 값을 CA 의 비밀키로 암호화하여 인증서에 포함 TLS 연결 Client 와 Server 가 HTTP Handshake 이후에 TLS 인증 절차를 거친다. Client 는 Server 에게 ssl 버전, 사용 가능한 암호화 프로토콜등을 전달한다. Server 는 ..
Naming Rules DynamoDB의 테이블, Attributes 와 다른 오브젝트들은 이름을 갖는다. 이름은 의미를 잘 전달할 수 있어야하며 간결해야한다. 예를들어, 상품, 책, 저자와 같이 이름만으로 의미를 알 수 있어야한다. 아래 설명들은 DynamoDB 의 네이밍 규칙을 설명한다: 모든 이름은 UTF-8 로 인코딩되며 대소문자를 구별한다. 테이블명과 인덱셔명은 3글자이상 255자이하여야하며 아래여야하며 아래 문자들로 구성될 수 있다 a-z A-Z 0-9 _ - . Attribute 이름은 한개 이상의 문자여야하며 64KB 이하여야한다. Attribute 이름은 가능한 짧게 관리하는것을 권장한다. Attribute 이름 또한 Read 요청에 응답값으로 함께 전달되기 때문이다. 아래 이름들은 At..
DynamoDB 를 사용하기에서는, Application 에서 몇가지 간단한 API 를 사용해야한다. 아래는 Category 로 구분된 API 의 요약들이다. Topics Control Plane Data Plane DynamoDB Streams Transactions Control Plane Control Plane 명령은 DynamoDB 테이블을 생성하고 관리한다. 또한, Control Plane 은 Index, Stream 과 같이 테이블에 의존적인 것들을 다룰 수 있게 해준다. CreateTable - 새로운 테이블을 생성한다. 필요하다면, 한개 이상의 Secondary Index 를 생성할 수 있고 DynamoDB Stream 을 활성화 할 수 있다. DescribeTable - Primay K..
DynamoDB 의 테이블(Table), 아이템(Item), 속성(Attribute)은 DynamoDB 를 다루기위한 주요 컴포넌트들이다. Attribute 들이 모여 하나의 Item 을 이루고 Item 들이 모여 하나의 Table 을 이룬다. Primary Key 를 사용하여 테이블의 아이템들을 구별하고 Secondary Index 를 사용하여 조회를 더 자유롭게 할 수 있다. DynamoDB Streams 를 활용하여 DynamoDB 의 변경 이벤트를 감지할 수 있다. Tables, Items, 그리고 Attributes 아래 설명은 DynamoDB 의 기본 컴포넌트에 대한 것이다. Tables - 다른 데이터베이스들과 비슷하게 DynamoDB 도한 데이터를 테이블에 저장한다. Table 은 데이터의..
- Total
- Today
- Yesterday
- AbstractMethodError
- ConcurrentHashMap
- Seperate Chaining
- dynamodb
- GlobalFilter
- wait()
- MariaDB
- notify()
- reative
- ResultSet
- router
- getBoolean
- mariada-connector
- rate limit
- RouteDefinition
- HashMap
- referencedColumnName
- aurora
- Flux
- notifyAll()
- Lazy
- circurit breaker
- mariadb-connector-j
- DyanomoDB
- spring cloud gateway
- msyql-connector-java
- custom config data convertion
- RoutePredication
- reactor
- N+1
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |