묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
kafka-console-consumer.sh 출력 순서 관련 질문
안녕하세요 강의 잘 듣고 있습니다. 강의[섹션 5 카프카 프로듀서 애플리케이션 개발 > 메시지 키를 가진 프로듀서 애플리케이션]에서의 질문 드립니다.. 질문 1.강의를 따라가며 실습을 그대로 진행해보고 있는데..아래와 같이 kafka-console-consumer 명령어에 --from-beginning 옵션을 주고 실행했을 때..보낸 순서대로 출력이 이루어지지 않는것으로 보여서 이유가 무엇인지 궁금합니다.. 질문 2.애플리케이션에서 key1-value1 을 먼저 send 하고key2-value2 를 send 하는 순서로 실행을하면..kafka-console-consumer 명령어로 실시간으로 출력되는 것을 보았을 때..key2 가 먼저 출력되고 key1 이 출력됩니다.. 이 경우 무엇이 잘못 된건지 궁금합니다. 실습환경Kafka 2.5.0코드는 3.4.1 kafka-producer 의 ProducerWithKeyValue 를 key value 값만 변경하였습니다. 감사합니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
브로커의 개수와 서버의 개수
하나의 서버에 하나의 브로커가 설치 되어 있다고 말씀해 주셨는데 복제 옵션이 3일 때, 적어도 3개의 서버를 실행되고 있어야 하는 건가요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
스파크에 대해
안녕하세요 강사님!먼저 좋은 강의 만들어주셔서 진심으로 감사드립니다. 다름이 아니라 궁금한 점이 있는데요,많은 사람들이 이야기하는 것이 hadoop과 스파크에 대한 비교인데요. 스파크의 인메모리 처리를 통한 속도 향상으로 인해 하둡을 넘어섰다(?) 이런 얘기가 많이 있는 것 같습니다. 그런데 본 강의에서는 스파크가 하이브와 비교되고 sql 언어를 맵리듀스로 처리하게 해주는 용도로 설명해주신 것으로 이해했습니다. 스파크는 하둡과 같은 데이터베이스가 아닌것인지 궁금합니다!
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
컨슈머 랙 강의 질문이 있습니다.
설날 추석을 예를 들어 설명을 해주셨는데요.트래픽이 늘어날 경우 일시적으로 파티션 개수와 컨슈머 개수를 늘린다는 의미가 와닿지 않습니다.파티션 개수는 늘릴 순 있지만, 줄일 수 없다고 강의를 통해 이해했습니다.그럼 일시적인게 아니라 한번 늘리면 끝인게 아닌가 싶어서요.그래서, 처음 파티션 개수를 설정할 때 넉넉하게 50~100개를 설정하면 이와 같은 이슈는 거의 발생하지 않고, 혹시라도 발생할 경우 더 많은 파티션 개수를 늘려야하지 않을까 싶습니다.근데 특정 날에만 트래픽이 몰리는건데 파티션 개수를 많이 늘려놓으면, 트래픽이 적을 때는 아무 상관이 없을까요?리밸런싱이 안생기면 좋겠지만, 리밸런싱이 실행되면 그 시간이 증가할거라 예상됩니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
h2 관련 질문사항이 있습니다
섹션 10 강의를 들으면서 설정값을 바꾼후 busrefresh를 통해 성공적으로 (204)를 반환 받아도 저런식으로 오류가 발생하여 항상 전부 재시작후 실습을 진행중입니다. 어떻게 해결해야할까요?해당 json부분에 이전과 다른 데이터 값을 넣어주면 정상작동합니다. 하지만 제가 알기로는 h2 db의 경우 재시작 할 때마다 데이터가 모두 날라가는걸로 알고 있습니다.spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:testdb username: sah2역시 인메모리 방식으로 잘 되어 있는데 왜 모든 서비스들을 전부 종료하고 재시작해야지만 h2내부의 값들이 사라지는지 궁금합니다.
-
미해결카프카 완벽 가이드 - 코어편
두 번 종료해야 꺼지는 이유?
wakeup()이 호출되지 않으면 종료되지 않고 다시 실행되는 이유가 무엇일까요..?
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
프로듀서 컨슈머 주요 옵션에 대한 문의가 있습니다.
bootstrap.servers 에 2개 이상의 브로커 정보를 입력하는 이유가 무엇일까요?제가 생각하기로는 클러스터에 대한 주소 1개를 입력하면 되는게 아닌가 싶어서요그래야지만 특정 브로커에서 문제가 생겼을 때 클러스터에 있는 다른 브로커로 접속해서 이슈가 없도록 설정하는 개념이 아닌가요?클러스터에 있는 브로커중 2개 이상을 임의로 입력해야한다는 것인데, 항상 클러스터에 있는 모든 브로커 개수를 입력해야한가요? 그럼 브로커가 추가될 때마다 소스에 있는 bootstrap.servers 정보를 수정해야 하는게 아닌가요?제가 원리를 잘못 이해한 것인지 답변부탁드립니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
운영 환경에서 컨슈머에 대한 질문이 있습니다.
특정 토픽에 대한 파티션을 3개를 만든 후 소스에서 컨슈머 그룹에 대한 컨슈머를 3개를 만들었습니다.운영 환경에서 실행중인 서버가 1개인데 CPU 사용량으로 인한 오토스케일링이 발생하여 서버가 2개가 되었을 때, 그럼 총 6개의 컨슈머가 생성되는 것이라고 생각됩니다.그럼 3개의 컨슈머는 idle 상태로 놀고 있는게 아닌가 싶습니다.제가 이해한게 맞을까요?실제 운영 환경에서 이런 경우는 어떻게 하는게 좋은 방법일지 궁금합니다.---------------멀티스레드 컨슈머 애플리케이션 강의를 들었습니다.그렇다면 강사님께서는 토픽 + 컨슈머 그룹 + 컨슈머 별로 각각의 프로세스를 실행시키나요?다른 강의에서 파티션의 개수를 충분히 많은 개수 50~100개를 권장하셨는데.. 그럼 프로세스가 너무 많이 떠있는거라 생각되서요.. 강의 예로는 아래와 같이 컨슈머가 있다면, 총 7개의 프로세스에 단일 쓰레드로 실행시키는 걸까요?ex)A-TOPICA-TOPIC-GROUP-1A-TOPIC-GROUP-1-CONSUMER-1A-TOPIC-GROUP-1-CONSUMER-2A-TOPIC-GROUP-2A-TOPIC-GROUP-2-CONSUMER-1A-TOPIC-GROUP-2-CONSUMER-2A-TOPIC-GROUP-2-CONSUMER-3B-TOPICB-TOPIC-GROUP-1B-TOPIC-GROUP-1-CONSUMER-1B-TOPIC-GROUP-1-CONSUMER-2
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
프로듀서를 통해 카프카 클러스터에 레코드를 보낼 때 항상 1개의 배치로만 tcp 통신이 이루어지나요?
카프카 프로듀서 소개 강의를 보다 질문드립니다.프로듀서에서 레코드를 send하면 Accumulator에서 배치로 묶는 과정을 한다고 하셨는데요.실제 Sender가 발생하는 시점에 프로듀서 애플리케이션에서 항상 1개의 배치 단위로 tcp 통신이 발생하나요?아니면 내부적으로 여러개의 배치를 한번의 tcp 통신으로 통신할까요?
-
해결됨실습으로 배우는 선착순 이벤트 시스템
안녕하세요 선생님 질문이 있습니다
먼저 강의 잘 들었습니다.취준 중인데도 이해가 잘 돼서 좋습니다! 다름이 아니라 동시성 제어를 할 때 redis, kafka로도 해결할 수 있다는 것은 알겠습니다. 다만, Lock으로도 동시성 제어도 할 수 있지만 줄줄이 기다리기 때문에 선착순 쿠폰 같은 이슈에 대해서는 비관적 락을 걸 경우 100명까지 순차적으로 느리게 된다는 것으로 이해했는데 맞을까요? 제가 이해한 것이 맞다면 락을 사용하면 많이 느릴텐데 보통 어떤 경우에 락을 통해 동시성 제어를 하고, 어떤 경우에 카프카를 쓰시나요? 같은 경우라도 상황마다 다르겠지만.. 예시를 조금만 들어주실 수 있을까요? 잘 이해를 하지 못해서 질문 남깁니다감사합니다
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
주키퍼의 대한 역할이 잘 이해가 되지 않습니다.
주키퍼는 카프카 클러스터 당 최소 1개씩 존재하는 건가요?주키퍼가 하는 역할이 무엇인지 잘 모르겠습니다..좀 더 추가적인 설명을 해주실 수 있을까요?추가로 집필하신 책에 주키퍼에 대한 자세한 설명이 있을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka 실행이 안됩니다.
zookeeper의 경우D:\{home}\kafka_2.13-2.7.0>bin\windows\zookeeper-server-start.bat config\zookeeper.properties이대로 실행하면 아래 파바박 뜨면서 tmp에 zookeeper 폴더도 잘 만들어 지는데kafka는D:\{home}\kafka_2.13-2.7.0>bin\windows\kafka-server-start.bat config\server.properties아무것도 안뜨고 그냥 D:\{home}\kafka_2.13-2.7.0>으로 넘어갑니다 tmp에 폴더도 안 만들어지고요. 딱히 에러가 발생하지도 않습니다. java는 jdk 11.0.2사용 중이고 버전에 문제 없어 보이는데 왜 이러는 걸까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
native 와 file 의 다른점
이번 강의의 native 와 기존에 처음부터 보여주신 uri : file///~~~ 의 방법과 크게 다른점이 뭔가요? 다른점이 없는것 같은데요...
-
미해결실습으로 배우는 선착순 이벤트 시스템
동시성제어
안녕하세요 강의를 듣다가 궁금증이 생겼는데요. kafka는 메시지를 하나씩 처리하기 때문에 동시성 제어도 가능할 것이라고 이해했는데 그렇다면 여기서 레디스를 사용하지 않더라도 카프카만 사용해도 동시성과 관련된 데이터 정합성을 보장할 수 있는건가요?
-
미해결카프카 완벽 가이드 - 코어편
콘솔에서 컨슈머 생성
토픽을 구독하는 컨슈머를 콘솔에서 생성하면, 생성하는 컨슈머마다 항상 새로운 그룹이 만들어지게 되는거고 해당 토픽에 내부 파티션인 __consumer_offset가 생성된 컨슈머의 수만큼 만들어지는게 맞나요?자바의 KafkaConsumer 를 사용할때 이미 존재하는 컨슈머 그룹에 참여한다면, 토픽에는 해당 컨슈머 그룹에 대한 정보인 __consumer_offset이 이미 존재하고 컨슈머에서 이 값을 읽어오니 earlist로 설정해도 0번 인덱스 레코드부터 읽는게 아닌 __consumer_offset에서 offset 값을 그대로 읽어와 사용하는게 맞나요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
수강 기간 연장 부탁드립니다.
안녕하세요 강사님 !좋은 강의를 꾸준하게 들어 성장하고 싶지만,항상 마음과 달리 쉽지가 않네요수강 신청하고 얼마 듣지도 못 했는데 벌써 기간이 얼마 남지 않아수강 기간을 연장을 요청드리고자 합니다.좋은 강의 감사드립니다 강사님 !
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
2023.08.10 기준 Spring Boot 3버전 대 Security Config 설정 파일 공유합니다.
@Configuration @EnableWebSecurity @RequiredArgsConstructor public class WebSecurity { private final UserService userService; private final BCryptPasswordEncoder bCryptPasswordEncoder; private final Environment environment; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(request ->{ request.requestMatchers(antMatcher("/actuator/**")).permitAll(); request.requestMatchers(antMatcher("/**")).permitAll();}) // .headers(header -> header.frameOptions( // frameOptionsConfig -> frameOptionsConfig.disable())) .apply(new MyCustomSecurity()); return http.build(); } public class MyCustomSecurity extends AbstractHttpConfigurer<MyCustomSecurity, HttpSecurity> { @Override public void configure(HttpSecurity http) throws Exception { AuthenticationManager authenticationManager = http.getSharedObject( AuthenticationManager.class); AuthenticationFilter authenticationFilter = new AuthenticationFilter(authenticationManager, userService, environment); http.addFilter(authenticationFilter); } protected void configure2(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userService).passwordEncoder(bCryptPasswordEncoder); } } }해당 코드는 앞 내용까지 포함하여 설정이 적용된 버전입니다. 저같은 경우는 처음부터 mysql로 진행하여서 h2 콘솔을 사용하지 않아 frameOptions를 주석처리 하였으나, 혹여나 h2 콘솔 사용하시는 분은 주석 해제 후 사용하시면 되고, 23.08.10 기준으로 hasIpAddress는 사용 불가능합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
spring boot 3버전대에서 metrics에서 정보 안나오는 문제 해결
@Configuration @EnableAspectJAutoProxy public class MetricsConfig { @Bean public TimedAspect timedAspect(MeterRegistry registry) { return new TimedAspect(registry); } }해당 config 파일을 추가해주세요.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
window11 / 23.08.09 기준 kafka connect 버전
window11 / 23.08.09 기준으로 kafka connect 버전을 7.1 버전으로 사용하시길 바랍니다.해당 강의의 6.1 버전에서 properties 경로를 못찾아서 버전업을 했더니 해결 했습니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
docker mysql or mariadb 실행 에러 참고하세요
mariadb 최신버전 사용시 Dockerfile 그대로 작성시 실행 에러가 발생합니다.저는 sql 을 백업해서 스키마랑 테이블 새로 만들도록 수정해서 해결했습니다.추가로 실행후 mysql 접속도 mysql 명령어가 아닌 mariadb 로 작성하셔야 됩니다.mariadb -h127.0.0.1 -uroot -pmysqldump -u root -p mydb > mydb.sqlFROM mariadb ENV MYSQL_ROOT_PASSWORD test1357 ENV MYSQL_DATABASE mydb COPY ./mydb.sql /docker-entrypoint-initdb.d/ EXPOSE 3306