- 카프카를 공부하시면서 생긴 질문들을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 잘 듣고 있습니다! 좋은 강의 올려주셔서 감사합니다. 빅데이터 아키텍쳐의 종류와 카프카의 미래 강의 9:00 전후의 카프카가 배치 데이터를 처리하기 위해 제공하는 기능에 대해서 질문이 있습니다. 슬라이드의 설명으로 이해하기에는 기존의 배치 데이터는 각 시점의 스냅샷 데이터이지만, 카프카는 변환 기록 로그를 남김으로써 기존의 배치 데이터 스냅샷을 매번 만들 필요 없이 로그로 특정 시점의 데이터를 만들 수 있다 라고 이해했습니다. 강의 내용으로는 카프카에서 배치 데이터를 가져오기 위해 기존의 배치 데이터 컨셉인 배치 데이터 스냅샷과, 변환 기록 로그 이렇게 둘 다의 정보를 사용해서 배치 데이터를 표현한다 라고 이해 했습니다. 1, 2번중 어떤게 더 적절하게 이해했는지 궁금합니다. 감사합니다!
카프카 ISR 에서 leader partition 이 장애가 있어서 follow partition 이 승계를 받고 그 후 leader partition 이였던 브로커가 정상 작동 된다면 이 partition 은 follow partition 으로 역할을 하는건가요? 그리고 장애가 났을 때 복제되지 못 했던 데이터들은 어떤식으로 복구 할 수 있는지 알고싶습니다.
안녕하세요. 스프링시큐리티 로그인관련 진행하다가 extends webSecurityConfigurerAdapter 가 취소선이 나와서 확인해보니 현재는 사용하지않는다고 알게되었습니다. 나름 바꾸면서 진행중인데 authenticationManager() 를 사용하려면 어떻게해야되는지 알 수 있을까요?
안녕하세요 카프카 커넥터를 적용해보려고, 공부중인데, 많은 예시에서 JDBC Connector와 Kafka MySQL Conenctor 두가지를 사용하더라구요 JDBC Connector는 데이터를 관계형 DB와 잘 연동되게 가져오고 넣기위한 소스들을 제공하는 커넥터이고, Kafka MySQL Connector는 카프카와 MySQL DB를 연결하기위한 커넥터이다. 라고 제가 이해하고 있는데, 맞는건가요?
Spring Boot 3.XX 대 버전으로 최신 버전 사용 시 H2를 이전 버전으로 사용 불가합니다. 따라서 H2를 따로 켜서 실행해준 후, catalog-service에서 Server mode로 연결하던지 따로 켜 둔 H2를 연결하던지 선택해야합니다. 이 때, Server Mode로 프로젝트와 H2를 연결시키면 강의 내용의 설정만으로는 data.sql의 INSERT 쿼리문이 동작하지 않습니다. 그렇기 때문에 관련 설정을 application.yml에 추가해주어야 하는데요. 아래와 같이 설정하면 됩니다. stackoverflow와 강사님의 2021년 답변을 참고하여 해결하였습니다. server: port: 0 spring: application: name: catalog-service h2: console: enabled: true settings: web-allow-others: true path: /h2-console datasource: driver-class-name: org.h2.Driver url: jdbc:h2:tcp://localhost/mem:testdb username: sa jpa: hibernate: ddl-auto: create-drop show-sql: true generate-ddl: true defer-datasource-initialization: true sql: init: mode: always eureka: instance: instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}} client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka logging: level: com.example.catalogservice: DEBUG 추가한 내용은 spring.jpa.defer-datasource-initialization과 spring.sql.init.mode 설정입니다.
안녕하세요 강의에서 멀티브로커 상에서 producer로 데이터를 집어 넣는 것은 실습을 하는데요 데이터를 읽을 때는 kafka-dump-log를 사용해서 읽습니다. 혹시 consumer를 사용해가지고는 멀티 브로커 상에서는 읽을 수 없나요? confluent kafka community 버전에서는 불가능한 건가요? 가능하다면 스크립트를 알려주시면 감사하겠습니다.
안녕하세요! 조금 애매한 부분이 있어서요! - 브로커 3대 토픽 2개 파티션 - rf 설정 2 - 로 만약에 설정을 한다면, 각 브로커에 토픽 2개씩 설정이 된거고, 파티션은 2개로 설정했기에 브로커 3개에서 라운드로빈으로 설정이 되는건가요? 이게 .. 어렵네요. 브로커 3대. 딱설정하고.. 토픽이 2개라고한다면 각 브로커마다 토픽이 테이블처럼 있을거고.. 이제 파티션을 라운드로빈으로 돌려서 설정을 해야하는데.. 이게맞는거지 ㅠㅠㅠ
최신 버전 진행하시는 분들을 위해 공유드립니다. Spring Security Configuration 설정 내용이 변경되었습니다. WebSecurityConfigurerAdapter 클래스가 deprecated되었는데요. 해당 클래스를 상속 받아 config 메소드를 구현하는 대신 SecurityFilterChain을 반환하고 직접 Bean으로 등록하도록 설정 방법이 바뀌었습니다. package com.example.userservice.security; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.web.SecurityFilterChain; @Configuration @EnableWebSecurity public class WebSecurity { private static final String[] WHITE_LIST = { "/users/**", "/**" }; @Bean protected SecurityFilterChain config(HttpSecurity http) throws Exception { http.csrf().disable(); http.headers().frameOptions().disable(); http.authorizeHttpRequests(authorize -> authorize .requestMatchers(WHITE_LIST).permitAll()); return http.build(); } } 강의 내용을 진행하기 위해서 강의에 나온 설정을 위처럼 설정해보았는데요. 일단 이렇게 설정하면 강의를 진행하는데 문제 없을 것이니 참고 바랍니다~
안녕하세요 강사님, 유익한 강의 감사드립니다. 멀티 노드 카프카 클러스터 부분을 EC2(t2.micro) 인스턴스에서 실습중에 문제가 생겨 질문드립니다. 1. 주키퍼 기동 2. 브로커1 기동 3. 브로커2 기동 4. 브로커3 기동 순서로 실행중에 브로커3을 기동하면 브로커 1이 중지되는 현상입니다. 다시 브로커1을 기동하면 브로커2가 중지되는걸 보면 브로커 3대가 함께 실행되지 않는것 같습니다. 바쁘시겠지만 도움 주시면 정말 감사드리겠습니다!
Error: Could not find or load main class org.apache.kafka.connect.cli.ConnectDistributed Caused by: java.lang.ClassNotFoundException: org.apache.kafka.connect.cli.ConnectDistributed kafka connect 설정도중 위의 에러가 해결되지 않아 통합 파일을 받으려했는데 페이지를 찾을 수 없다고 나옵니다. https://www.inflearn.com/questions/601451/windows-kafka-%EC%A0%95%EC%83%81-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-%EB%B2%84%EC%A0%84-%EC%A0%9C%EA%B3%B5%EB%AC%B8%EC%9D%98 https://drive.google.com/file/d/1GDrBskzAE4Y_GojNeXhGeN2YeMFrpFe-/view?usp=sharing 링크 공유 다시해주시면 감사하겠습니다.
m1 맥북사용자인데, 강사님 가이드에 따라 virtural box에 ubuntu를 해보려니, 설치가 안도고 계속 virtural box가 오류가 나서, 그냥 맥의 로컬에 설치하여 강의를 쫓아가고 있어요. 그런데, connector 부팅시 오류가 발생합니다. connect-distributed $CONFLUENT_HOME/etc/kafka/connect-distributed.properties groupId를 바꿔도 봐도 동일합니다. 해당 포트도 중복되나 싶어서 다른 것으로 바꿔도 동일합니다. 확인해 주실 수 있을까요? [2023-02-12 01:06:44,572] ERROR [Worker clientId=connect-1, groupId=connect-cluster-b] Uncaught exception in herder work thread, exiting: (org.apache.kafka.connect.runtime.distributed.DistributedHerder:334) java.lang.IllegalStateException: There are no in-flight requests for node 0 at org.apache.kafka.clients.InFlightRequests.requestQueue( InFlightRequests.java:62 ) at org.apache.kafka.clients.InFlightRequests.completeNext( InFlightRequests.java:70 ) at org.apache.kafka.clients.NetworkClient.handleCompletedReceives( NetworkClient.java:872 ) at org.apache.kafka.clients.NetworkClient.poll( NetworkClient.java:569 ) at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll( ConsumerNetworkClient.java:265 ) at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.pollNoWakeup( ConsumerNetworkClient.java:306 ) at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.poll( ConsumerCoordinator.java:536 ) at org.apache.kafka.clients.consumer.KafkaConsumer.updateAssignmentMetadataIfNeeded( KafkaConsumer.java:1262 ) at org.apache.kafka.clients.consumer.KafkaConsumer.poll( KafkaConsumer.java:1231 ) at org.apache.kafka.clients.consumer.KafkaConsumer.poll( KafkaConsumer.java:1211 ) at org.apache.kafka.connect.util.KafkaBasedLog.poll( KafkaBasedLog.java:315 ) at org.apache.kafka.connect.util.KafkaBasedLog.readToLogEnd( KafkaBasedLog.java:351 ) at org.apache.kafka.connect.util.KafkaBasedLog.start( KafkaBasedLog.java:201 ) at org.apache.kafka.connect.storage .KafkaConfigBackingStore.start( KafkaConfigBackingStore.java:294 ) at org.apache.kafka.connect.runtime.AbstractHerder.startServices( AbstractHerder.java:132 ) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run ( DistributedHerder.java:320 ) at java.base/java.util.concurrent.Executors$RunnableAdapter.call( Executors.java:577 ) at java.base/java.util.concurrent.FutureTask.run( FutureTask.java:317 ) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1144 ) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:642 ) at java.base/java.lang.Thread.run( Thread.java:1589 ) [2023-02-12 01:06:44,582] INFO Stopped http_localhost8084@30cecdca{HTTP/1.1, (http/1.1)}{ localhost:8084 } (org.eclipse.jetty.server.AbstractConnector:381)
Order Service URL 주소에서 IP:PORT/user/{user-id}/order 이렇게 주소를 주셨는데 Restful API 에서 주문 도메인에 있는 정보를 유저 아이디 값으로 가져오고 싶을 때 GET ip:port/order?user-id='' 로 가져와도 상관없을까요? 이게 API 디자인 가이드에 위배 되는 행위인지 궁금합니다.
안녕하세요. 정말 유용한 강의 해주셔서 감사드립니다. 인증 처리 관련해서 궁금한점이 있어 질문 드려요!! 궁금한점은 로그인 이외 요청에서는 , AuthenticationFilter 를 통과하지 않고 진행되는 것인가요? .antMatchers("/**") .hasIpAddress("172.30.1.60") .and() .addFilter(getAuthenticationFilter()); 감사합니다.