엘라스틱 서치 운영중에 발생한 index read-only 전환 현상에 대하여 기록합니다. 어느날 엘라스틱 서치에서 아래와 같은 에러가 발생하였습니다. org.elasticsearch.cluster.block.ClusterBlockException: index [file-log-000001] blocked by: [TOO_MANY_REQUESTS/12/index read-only / allow delete (api)] 이유 해당 에러에 대하여 검색결과 디스크 용량이 어느 수준으로 쌓이게되면 엘라스틱 서치 설정에 의하여 인덱스가 read only로 바뀌게 됩니다. 설정은 사용자가 변경할 수 있으며 설정에 대한 상세 내용은 아래 링크를 통하여 확인하실 수 있습니다. 관련 내용 링크 : https://www...
안녕하세요? 이번 포스팅은 제가 Spring Boot Project 진행 시 필수적으로 셋팅하는 몇가지들을 소개드리고자합니다. 1. 버전 자동화 (feat.시멘틱 버저닝) 프로젝트의 버전관리는 굉장히 중요한 요소중 하나입니다 이 소프트웨어가 어떠한 동작을 하는지, 과거의 버전과 무엇이 달라졌는지, 과거에 제공하던 기능을 아직도 제공하는지 아니면 이제는 제공을 안하는지 등이 구분되어야 합니다. 이러한 구분을 버저닝을 통하여 규칙성있게 관리할 수 있습니다. 방법 이전에 올렸던 게시글의 링크로 대체합니다 링크 : https://shinwusub.tistory.com/138?category=404917 2. REST API 문서 자동화 (feat.Swagger) 대부분의 Spring Boot 프로젝트는 Fron..
윈도우에서 gradle 프로젝트를 commit하고 push한 다음 해당 프로젝트를 리눅스 환경에서 pull하여 빌드하려할 때 gradlew 에 대한 권한이 없는 경우가 존재하여 해결법을 기록합니다. 해결법 commit하는 윈도우PC에서 해당 프로젝트의 root 디렉토리로 이동 후 아래와 같은 터미널 명령어를 실행해 줍니다. git update-index --chmod=+x gradlew 이후에 commit, push를 진행 후 다시 리눅스에서 pull하여 빌드를 진행하면 정상적으로 진행이 됩니다.
Spring Boot Gradle 프로젝트를 진행하면서 시맨틱 버전을 적용할 경우가 있어서 이에 대한 기록을 남깁니다. 시맨틱 버저닝이란?(Semantic Versioning) 시맨틱 버저닝은 1.0.0-alpha+test // major.minor.patch-prerelease+buildMetaData와 같은 구조를 띄는 버전 기법을 말합니다. 좀 더 자세한 정보는 https://velog.io/@iamjoo/Semantic-Versioning%EC%9D%B4%EB%9E%80 를 참고 부탁드리겠습니다. Gradle을 이용한 시맨틱 버저닝 적용 우리의 Gradle을 Groovy 라는 프로그래밍 언어를 이용하여 마치 코딩을 하듯이 조작할 수 있습니다. 이것이 maven과의 큰 차이점이라 볼 수 있을 것 같..
Spring Boot 프로젝트 중 하나의 log파일에 info,warn,error 들이 모두 표시되어 한눈에 보기가 쉽지 않았기에 log level 별로 별도의 파일로 분리하는 방법을 기록합니다. 참고 Logback 전반적인 설명이 너무 잘 된 포스팅을 발견하여 Logback 사용에 대한 내용은 아래 링크를 참고바랍니다. https://goddaehee.tistory.com/206 logback-spring.xml 파일 생성 info ACCEPT DENY ${LOG_PATTERN} logs/trace/current.log trace ACCEPT DENY ${LOG_PATTERN} logs/trace/trace.%d{yyyy-MM-dd}_%i.gz 200MB 30 logs/debug/current.log ..
Centos7 환경에서 특정 포트를 통해 외부로 패킷을 발신하는 service 가 있는데 수신측에서 데이터를 받았는지 확인되지않아 실제로 패킷이 발신되는 중인지 확인이 필요한 경우가 발생하여 기록합니다. tcpdump tcpdump는 대부분의 유닉스 계열에서 네트워크카드를 통해 송수신 되는 패킷을 가로채고 표시해주는 소프트웨어 입니다. 참고로 유닉스 계열에서 TcpDump가 있다면 윈도우 계열에서는 WinDump라는 것이 있습니다. tcpdump 설치 tcpdump 가 설치되어있지 않다면 설치를 진행합니다. yum install tcpdump 네트워크 디바이스 정보 얻기 먼저 현재 환경에서 네트워크 디바이스 정보를 알아야합니다. 아래와 같은 터미널 명령어를 통하여 디바이스 정보를 얻을 수 있습니다. nm..
Gradle 프로젝트를 진행하면서 의존성 추가 시 version이 명시된 예와, version이 명시되지않은 예 들이 종종 발견되어 둘의 차이를 확인하고자 글을 남깁니다. version 명시의 예 dependencies { implementation 'org.mariadb.jdbc:mariadb-java-client' } version 생략의 예 dependencies { implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.7.4' } 차이점 version 생략 시 자신이 선택한 저장소 에 서 가장 최신을 유지합니다. 선택된 저장소 repositorie..
kafka 프로듀서를 사용하면서 데이터가 소실되는 현상이 발생하여 이를 잊지 않고자 기록합니다. 단일 브로커에서의 데이터 소실 제가 사용하던 카프카 환경은 단일 브로커에 클러스터링이 되어있지않은 카프카였으며 해당 카프카 서비스가 알 수 없는 이유로 종료되었다가 다시 켜졌으며 이 중간에 프로듀싱을 하던 서비스가 보낸 데이터가 카프카에 쌓이지 못하고 사라지는 현상이 발생하였습니다. 해결책 이 데이터 소실 문제를 해결하고자 찾아 보았던 방법으로는 1. Kafka 클러스터링 Kafka 클러스터링 기능을 이용하여 3개 이상의 Broker로 이루어진 하나의 클러스터로 Kafka를 운영하는 방법입니다. 이 경우에 3대의 물리적인 서버를 브로커로 이용하는 것이 바람직합니다. 2. 프로듀싱에 실패한 데이터를 보관했다 다..
- Total
- Today
- Yesterday
- rotator
- 람다
- Lambda
- coordinate system
- Trouble shooting
- UE5
- unrealengine
- LambdaFunction
- c++
- 람다함수
- c++11
- C
- UE4
- double free
- bug
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |