Programming-[Backend] (421) 썸네일형 리스트형 카프카 멱등성(Idempotence) 설정, Retry 및 DLT 설정 시 유의사항 1. 멱등성 설정enable.idempotence = truemax.in.flight.requets.per.connection retries > 0 이여야함 -> '2147483647'로 설정acks = 'all' 이여야함 만약 enable.idempotence = false이고,max.in.flight.requests.per.connection > 1이면 메시지 배치 중 일부가 에러가 났을 때재시도하면서 순서가 바뀔 수 있음2. Retry, DLT 설정DefaultErrorHandler() 부분에 컨슈머 에러 발생 시 Retry, DeadLetter 정책 설정@Bean public DefaultErrorHandler errorHandler() { DefaultErrorHandler handler.. Consumer Lag 남아있는 것 제거하기(docker kafka container shell tool 활용) 1. 개요 프로듀서에 비해 컨슈머 offset이 뒤쳐져있고, 더 이상 프로듀서가 메시지를 발행하고 있지 않은데 Consumer Lag이 남아있는 경우 offset을 변경하는 방법왜 남아있는지는 다양한 원인에 의해서 일 거 같은데.. 상황에 맞게 연구가 필요할듯함.lag에 의한 메시지가 유실되어도 상관없는 경우(앱 오류나 특정 상황으로 인해 consumer lag이 남아있는 경우)에 적용 2. 방법kafka-consumer-groups.sh shell은 docker를 사용하는 경우 아래 명령어를 실행하여 접근 가능 docker exec -it {yourKafkaDockerContainerName} /bin/bashcd /binls ls 명령어로 kafka 툴 관련 .sh 파일들이 있는지 확인. 없다면 다.. 자바 기초 강의 정리 - 8. 클래스 패스, JAR 인프런 얄코의 제대로 파는 자바 강의를 듣고 정리한 내용이다. 중요하거나 실무를 하면서 놓치고 있었던 부분들 위주로만 요약 정리한다.자세한 내용은 강의를 직접 수강하는 것이 좋다.https://www.inflearn.com/course/%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%8C%8C%EB%8A%94-%EC%9E%90%EB%B0%94/dashboard 1. 소스패스, 클래스 패스 현재 위치, 패키지 위치 정보 등을 나타낸다. 컴파일 시: -sourcepath 옵션을 주어 소스패스를 사용한다.실행 시: -classpath 또는 -cp 옵션을 주어 클래스패스를 사용한다. 소스 패스 예제소스 패스와 관련한 예제를 살펴본다. 아래 명령어를 실행하면 java의 compiler가 Main.j.. 자바 기초 강의 정리 - 7. 리플렉션, 어노테이션, 클래스 로더 인프런 얄코의 제대로 파는 자바 강의를 듣고 정리한 내용이다. 중요하거나 실무를 하면서 놓치고 있었던 부분들 위주로만 요약 정리한다.자세한 내용은 강의를 직접 수강하는 것이 좋다.https://www.inflearn.com/course/%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%8C%8C%EB%8A%94-%EC%9E%90%EB%B0%94/dashboard 1. 리플렉션 런타임에 클래스, 인터페이스, 메소드, 필드 등을 분석하고 조작할 수 있는 기능이다. 적절히 사용하지 않으면 성능, 보안 등에 문제가 발생할 수 있다. 1.1 Class 자료형reflection을 이용하면 class 자료형을 통해 특정 클래스의 정보들을 불러올 수 있다.public class reflection { .. [TIL] 카프카 로그 압축 정보 local container에서 확인 방법(kafka-run-class, DumpLogSegments) 1. 개요아래 Ref. 블로그에서 Producer로 메시지 발송 시 압축에 대한 내용을 보고, Docker로 실행 중인 local 컨테이너에서 로그 정보를 출력해볼려고 했다.https://velog.io/@wwlee94/Kafka-메시지-압축에-대하여 docker로 실행하다보니 CLI용 kafka-run-class.sh 스크립트의 경로 및 로그 파일 경로가 달라서 찾느라 시간을 썼다. 저장해놓는다. /usr/bin/kafka-run-class kafka.tools.DumpLogSegments --files /var/lib/kafka/data/{yourPartitionName}/{yourMessageSegment}.log --print-data-log | grep compresscodec 2. 테스.. [TIL] Test Coverage Report - Jacoco, Codecov, Test Reporter 1. JacocoJacoco를 사용하면 build시 Test Coverage Report를 생성해준다. 코드 라인별로 테스트 코드에서 참조되어 사용되었는지 점검하고, if 분기문 등 모든 케이스에 대해 점검하기 때문에 혹시 빠뜨린 테스트가 없는지 살펴보는데도 도움이 된다. gradle로 build를 하고나면 build/reports/tests/test/ 디렉토리에 index.html 이라는 coverage report를 만들어준다. 아래 사진 처럼 각 패키지별, 클래스별로 테스트 수, 성공/실패 여부, 성공률 및 자세한 내용을 알려준다. 세부 내용으로 들어가면 앞서 말한 바와 같이 내가 어떤 부분을 놓쳤는지 알 수 있기 때문에 견고한 소프트웨어를 만드는데 있어 필수라고 할 수 있다. ref) http.. 자바 기초 강의 정리 - 6. 직렬화, URL 및 소켓 프로그래밍 인프런 얄코의 제대로 파는 자바 강의를 듣고 정리한 내용이다. 중요하거나 실무를 하면서 놓치고 있었던 부분들 위주로만 요약 정리한다.자세한 내용은 강의를 직접 수강하는 것이 좋다.https://www.inflearn.com/course/%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%8C%8C%EB%8A%94-%EC%9E%90%EB%B0%94/dashboard 1. 직렬화(Serialization)자바 클래스를 Serializable 클래스를 구현하여 직렬화할 수 있다. 직렬화 시 클래스의 인스턴스를 바이트 스트림으로 변환하여 다른 곳으로 보낼 수 있다. public class Person implements Serializable { private static long serialV.. 자바 기초 강의 정리 - 5. 데이터 입출력(Stream, Reader, Writer) 인프런 얄코의 제대로 파는 자바 강의를 듣고 정리한 내용이다. 중요하거나 실무를 하면서 놓치고 있었던 부분들 위주로만 요약 정리한다.자세한 내용은 강의를 직접 수강하는 것이 좋다.https://www.inflearn.com/course/%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%8C%8C%EB%8A%94-%EC%9E%90%EB%B0%94/dashboard 1. 파일 다루기 기존 java.io.File 클래스는 멀티쓰레드 문제, 기능 한정, OS간 이식성 문제 등으로 사용하지 않고, java.nio.file 패키지의 기능들로 대체되었다. 1.1 Pathsnio 패키지 내의 클래스이다. 이전 버전의 File과는 다르게 Path를 String뿐만 아니라 Path라는 객체 자체로 다루면서 더 .. 이전 1 ··· 8 9 10 11 12 13 14 ··· 53 다음