요약 및 개요 groupedFlux에서 tracking 할 수 있는 키의 개수 제한은 256개 인 것처럼 동작 아래 테스트 코드는 트러블슈팅 중 원본 로직을 흉내내며 따라가는 터미 코드 import lombok.Data; import org.junit.jupiter.api.Test; import reactor.core.publisher.Flux; import reactor.core.publisher.GroupedFlux; import java.util.ArrayList; import java.util.List; import java.util.function.Function; public class GroupedFluxTest { @Data static class Dummy { private String ..
배경 CompletableFuture 에서 whenComplete 랑 whenCompleteAsync 의 차이가 어떤건지 궁금해서 기록 whenComplete: Returns a new CompletionStage with the same result or exception as this stage, that executes the given action when this stage completes. whenCompleteAsync Returns a new CompletionStage with the same result or exception as this stage, that executes the given action using this stage's default asynchronous exe..
accesslog 포맷 x.x.x.x - - [04/Apr/2021:00:00:00 +0900] "POST /x/x HTTP/1.1" 200 84 "-" "-" "x.x.x.x" "elapsed=0.532"s "request_length=1031879" 원하는 동작 request length 가 특정 값 이상 요청 추출 추출 cat http-access.log.XXXXXXX | awk '{ split($0,a,"request_length="); b = substr(a[2], 1, length(a[2])-1) if(b+0 > 1000000) { print b; print $0 } }' 기타 useragent 는 따로 빼는게 맞는것 같다. 지정된 포맷이니 레이블은 필요하지 않다. 그냥 promethues 에..
들어가는 말 몇 년 전 elasitcsearch 클러스터를 새로 구성했을 때 heap 관련 설정으로 찾았던 내용을 기록한다. 기본적으로는 ES 공식 가이드 (구버전)의 내용을 따라간다. 요약 jvm 기반의 애플리케이션이라면 heap 최대 사이즈를 32GB를 넘기지 말도록 고려하라 테스트해보고 30~31GB 중 적당한 사이즈를 사용하자 배경 시간이 좀 지났지만, elasitcsearch 클러스터를 새롭게 구성하던 중 여러 가지 튜닝 포인트들을 찾아서 적용하였다. 그중 가장 재미있던 내용이 '32GB 이상으로 힙을 설정하지 마라'이다. jvm 기반의 애플리케이션을 다루다 보면 매번 고민하게 되는 문제가 있다. STW. heap을 많이 잡는다면 성능이 잘 나올 것 같은 느낌이 있지만 그렇지 않다. full g..
들어가는 말 동기(sync)와 비동기(async), 블로킹(blocking)과 논블로킹(non-blocking) 사전적인 의미를 학습과 암기에 의해 알고 있다. 그리고 매번(아니 매년) 다시 볼 때마다 뭘 잘못 이해했었는지, 이번에는 제대로 이해했다고 착각한다, 시간이 지나면 원상복귀다. 그렇다 모르는 거다. 변명이 길었다. 지금까지는? 처음 접한 건 웹 개발을 막 시작할 때쯤 ibm developerworks에 올라온 아티클에서 2 by 2 테이블과 해석본들이었다. 아쉽게도 원문은 이제 보이지 않지만, 사진이나 그림은 구글링 해보면 충분히 많이 나온다. 동기 sync: 작업이 끝날 때까지 기다리고 응답을 받음 비동기 async: 작업이 끝나면 따로 응답을 받음 블로킹 blocking: 함수가 완료되면 ..
- Total
- Today
- Yesterday
- 전설로떠나는월가의영웅
- 기술블로그
- flush
- 에픽테토스
- 개발자
- completablefuture
- 사기꾼증후군
- 말의품격
- kafka 2.8.0
- elasticsearch
- pecs
- 클린 아키텍처
- Async
- Generic
- 만들면서 배우는 클린 아키텍처
- Kafka
- WebSocket
- percolate
- jhipster
- 기술사이트
- meta character
- COMMIT
- Java
- PatternSyntaxException
- fsync
- AWS
- Dangling
- 기술센싱
- Spring
- opensearch
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |