전체 글 (730) 썸네일형 리스트형 [Kafka] 토픽 생성 및 파티션 설정 토픽은 디비의 테이블과 같다. 토픽을 생성하려면, 클러스터 정보와 토픽의 이름을 알고 있으면 된다. topic.sh를 활용해서 해당 토픽을 생성하거나,컨트롤 하면 된다. 파티션 개수, 복제 개수를 설정할 수 있지만, 안하면 브로커의 기본값으로 세팅된다. 우선 주키퍼와 브로커를 실행하자 실행파일은 bin 하위, config 파일은 config 폴더 하위에 있다. 파티션 개수를 줄일수 없는 특성 때문에, 해당 파티션의 개수를 줄여야 할 때는 방법이 없다. 이때는 그냥 새로 토픽을 만드는 것이 좋다. 일단. 주키퍼, 브로커를 실행하자 1) 주키퍼 실행 bin/zookeeper-server-start.sh config/zookeeper.properties 2) 브로커 실행 bin/kafka-server-star.. [Kafka] 카프카 재시작시 발생하는 에러 카프카를 다시 시작하면 종종 에러가 발생하게 된다. 기존에 클러스터에 대한 내용을 캐싱 형태로 가지고 있게 되는데, 이는 재시작을 위해 지워줘야 한다. 왜냐면, 해당 정보는 클러스터가 재시작될때 변경되는데, 이전의 클러스터 정보를 찾아가기 때문이다. (에러 내용) kafka.common.InconsistentClusterIdException: The Cluster ID HJcDo1HpS5-q4aZps1OlAQ doesn't match stored clusterId Some(E40mZS9sS4q0HuW9kidRqg) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wro.. [Spring] Spring Profile 공부를 막 시작한 친구를 위해.. 기록용 Spring 에서는 profile별로, 변수나 정적 값의 정보를 다르게 가져갈수 있다. 간단하게 파일 구조는 이렇게 분리가 가능하다. application-환경.yaml 이다. 흔히 Java를 런시거나, Jar파일을 실행할때, VM Options을 주게 되는데 이 Vm Option으로 환경변수에 대한 값을 지정해주면 해당 Profile로 분기처리를 하여, 동작을 제어할 수 있다. 인텔리제이를 예로 위 처럼 -D로 변수명,값을 Vm option으로 넘겨주게 되면 스프링이 기동될때 해당 프로파일에 대한 값으로 정보를 가져오게 된다. 이게 가장 흔하고 기본적인 내용이다. @ActiveProfile이나 등등 해당 프로파일을 가지고 빈의 값을 동적으로 분기처리하는.. 그런.. [Spring] 스프링 밸리데이션 동작과정 머리속에 들어있는 내용들을 정리한다. 1. 밸리데이션 관련 의존성 주입. implementation 'org.springframework.boot:spring-boot-starter-validation' 2. 간단한 테스트 @RestController @RequiredArgsConstructor public class MemberController { private final MemberMapper memberMapper; @RequestMapping("/member") public String mapperTest(@RequestBody @Valid MemberDto memberDto){ return "success!"; } } @Getter @Setter @AllArgsConstructor public.. [Aws] Docker-compose 구성하기 기존에는 Aws Mariadb를 별도로 구성해서 사용했는데, 이제 Ec2에서 app, mariadb 두개의 컨테이너를 띄우고 사용할 것이다. 구조는 이렇다. 로컬에서 도커파일을 빌드해서 이미지를 Docker hub로 올리고 docker-compose 파일을 수정해준다. ec2에 scp로 docker-compose 파일을 보내고(추후에는 vi로 직접 수정) 해당 docker-compose 파일로 빌드 및 컨트롤한다. 1) DockerFile FROM openjdk:17-alpine ARG JAR_FILE=/build/libs/boiler-0.0.1-SNAPSHOT.jar COPY ${JAR_FILE} /boiler.jar ENTRYPOINT ["java","-jar","-Dspring.profiles.ac.. [Spring] 좋은 공통화된 Response를 만들어볼까? 갑자기 생각난것과. 좋은 공통화에 대한 고민을 하다가. 작성하는 글 사실 공통화를 그렇게 열광하지는 않는다. 운영 측면에서 공통화가 무조건 이득이라고 생각하지도 않는다. 때로는 각 상황에 맞는 클래스파일이 하나씩 있는게 좋다고도 생각한다. 단순히 아래와 같은 Response가 있다고 가정하자. @PostMapping("/sample") public Member test(@RequestBody Member member){ System.out.println("id_post~~:"+member.getId()); return member; } 해당 응답 객체를 좀더 공통화를 한다면 아래와 같을 것이다. @AllArgsConstructor @Getter public class EntityResponse { T d.. [Kafka] Kafka Zookeeper,Broker 세팅 및 실행 1. 카프카 바이너리 파일 다운로드 https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org 2.디렉토리 구조확인 kafka 2.8버전을 받았다. 2.12는 스칼라 버전이다. bin은 바이너리나 쉘 스크립트가 포함되어있다. config에는 설정에 필요한 여러 설정파일들이 libs 브로커를 실행할떄 필요한 라이브러리가 있다. 해당 폴더 내에 추가로 data 디렉토리를 생성한다. 이는 데이터를 적재하기 위함이다. 3. 내용 살펴보기 config/server.properties는 브로커를 실행할때 필요한 설정 들이다. # Licensed to the Apache So.. [Kafka] 카프카 운영 방법들 아파치 카프카 클러스터를 서버에 직접 설치하는 것은 가장 전통적이다. 세부적인 서버 설정을 통해, 최고의 성능으로 최적의 클러스터를 활용할 수 있다. 하지만, 시행착오가 필요하다. 따라서 Saas를 도입하는 형태도 많다. 아래 그림을 보면 이해가 편하다. 직접 관리영역이 적을수록, 편하지만 세부적인 설정은 점점 더 불가능해진다. 오픈소스로 직접 구축하면 32/6 기가로 세팅할수있다. 이유는 OS Page cache영역을 사용할 수 있기 떄문에, 오히려 더 빠르고 성능 좋게 처리할 수 있다. 개발용이더라도, 브로커 개수는 여러개로 두는 것이 좋다. 파티션은 한번 늘이면, 다시 줄일수 없지만 브로커는 줄일수 있기 때문이다. 이전 1 ··· 12 13 14 15 16 17 18 ··· 92 다음