전체 글
-
운영 배포 전에 챙겼던 Kafka Producer Client 포인트들실무에서 알게된 내용 2022. 6. 22. 11:36
1. 주요 옵션 정리 buffer.memory producer가 kafka 서버로 데이터를 보내기 전에 잠시 기다리는 버퍼 메모리 공간 기본값은 33,554,432 byte (32MB), compression.type producer가 데이터를 보낼 때 압축을 해서 보낼 수 있는데, 이때 압축하는 방식 기본값은 none retries 일시적인 오류로 producer가 데이터 전송에 실패할 경우, 재전송할 횟수 acks producer가 kafka로 데이터를 전송한 뒤 요청 완료를 결정하기 위한 옵션 0(빠른 전송), 1(리더만 메시지를 받았는지 확인), all(모두 메시지를 받았는지 확인) batch.size producer가 여러 데이터를 같은 파티션을 전송할 때 batch방식으로 보내는데 이때의 크기..
-
컬럼 값을 Collection으로 받을 때 Querydsl 이슈실무에서 알게된 내용 2022. 6. 21. 21:09
최근 팀 내에서 GW 방식으로 통신하던 것들을 Edge API로 전환하는 작업을 하고 있다. 이 때문에 Querydsl를 사용해서 쿼리를 작성해야 하는 일이 있었다. 그런데, 특정 검색조건에 대해 Querydsl을 작성하고 DB 통합 Test를 돌렸더니 갑자기 NPE(NullPointerException)가 발생했다. (참고로 현재 내가 맡고 있는 서비스에서는 DB 통합 Test를 위해 Database Rider을 사용하고 있다.) 처음 들었던 생각은 애초에 말도 안 되는 생각이지만 '데이터가 없어서 그런가?'였다. 역시나 이건 아니었다. 이에 코드를 분석해 봤더니 아래 빨간 네모에서 null 값을 리턴하고 있어서 NPE가 발생하고 있었다. [MethodNode 클래스] 여기서 궁금증이 하나 생겼다. ..
-
Grafana loki에서 에러 로그 하나가 검색이 안 됐던 이슈실무에서 알게된 내용 2022. 6. 14. 18:49
1. 문제 상황 : Grafan loki에서 다른 에러 로그는 검색이 잘 되는데, 특정 에러 로그 하나가 검색이 안 됐던 이슈가 있었다. 현상 이유 : loki query에서 정규표현식 오퍼레이터 '=~' 는 줄 바꿈(\n)을 포함하여 전체 문자열과 일치해야 검색이 되는데, 정규 표현식 ' . ' 문자는 기본적으로 줄 바꿈과(\n)이 있으면 일치하지 않는다고 판단한다. 이로 인해, 로그 메시지에 줄 바꿈이 포함된 경우 일치하지 않는다고 판단해서 검색이 안 됐던 이슈였다. 해결 as-is $field=~".*$value.*" to-be $field=~"(?s).*$value.*" 이에 대한 내용은 Grafana Loki 공식 문서에 LogQL의 Log queries 부분을 참고하면 된다. 참고 자료 htt..
-
시스템 별로 Feign Client readTimeout 설정 때문에 내부 동작 코드 분석실무에서 알게된 내용 2022. 6. 14. 17:06
현재 내가 담당하고 있는 서비스는 Feign Client로 OkHttpClient를 사용하고 있었다. feign.okhttp.enabled: true 위 yml 설정 때문에, 아래 코드를 보면 Feign Client로 OkHttpClient를 사용하게 된다. [OkHttpFeignLoadBalancedConfiguration 클래스] 다만, 아래 이미지를 보면 OkHttpClient 가 바로 호출되는 건 아니고 현재 내가 담당하고 있는 서비스에서 사용 중인 sleuth 의존성 때문에 TraceLoadBalancerFeignClient(LoadBalancerFeignClient의 하위 클래스)가 호출돼서 내부에서 LazyTracingFeignClient로 위임, 마지막으로 OkHttpClient로 위임하는..
-
현재 운영하고 있는 DB(MySQL) 커넥션 수 확인하기실무에서 알게된 내용 2022. 6. 3. 08:39
대상 DB : Writer DB 상황 : 담당하고 있는 서비스를 사내 배포 환경으로 전환하면서 새로운 인스턴스에다가 배포를 진행했다. 그리고 나서 기존 ALB에서 기존 인스턴스를 detach 함과 동시에 금일 배포한 새로운 인스턴스를 바라보도록 스위칭 작업을 했다. 기존 인스턴스들은 만약에 상황을 대비해서 며칠간 살려두기로 결정했다. 이로 인해, DB 커넥션 수가 얼마나 증가했는지 확인하고 싶었다. 확인 : 전반적으로 DB 커넥션 수가 증가함을 확인함 추가 궁금했던 사항 DB는 커넥션 수를 최대 얼마나 허용하고 있을까? 커넥션 풀 maximum 사이즈는 얼마로 돼 있을까? 1. DB는 커넥션 수를 최대 얼마나 허용하고 있을까? 최대 허용하는 커넥션 수 확인 SHOW VARIABLES LIKE '%max_..