월 19,800원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨카프카 완벽 가이드 - 코어편
CooperativesStickyAssignor 파티션 할당 전략 에러
안녕하세요 강사님 좋은 강의 감사합니다. 파티션 할당 전략 중 CooperativesStickyAssignor 전략 실습중에 에러가 발생하였습니다 에러 내용은 두번째 컨슈머를 기동하면서 첫번째 컨슈머 콘솔에서"Request joining group due to: group is already rebalancing" 라는 에러가 발생하면서 리밸런싱이 완료되지 않아 어느 컨슈머에도 파티션이 할당되지 않는 문제가 발생합니다. 해당 에러는 타임아웃이 나기전까지 반복해서 발생하며 이후에는 두 컨슈머 모두 종료됩니다 해결방법좀 부탁드립니다ㅠ.ㅠ
- 해결됨카프카 완벽 가이드 - 코어편
Fetcher 관련 질문드립니다.
안녕하세요 선생님 양질의 강의 너무 감사하게 잘듣고 있습니다.다름이아니라 강의를 듣던 중 궁금한 부분이 있어서 글을 남기게 되었습니다.Broker로 부터 통신을 한 후에 pendingCompletion(ConcurrentLinkedQueue) 에 response를 적재를 하고적재된 pendingCompletion 기준으로 Fetcher가 데이터를 가져오게 되는데 이 과정에서 Fetcher는 별도의 스레드로 동작하는지요?"Consumer Fetcher관련 주요 파라미터와 Fetcher 메커니즘의 이해: 13:22"
- 미해결카프카 완벽 가이드 - 코어편
Active segment가 지워진다면
Active Segment도 정리 대상이 되어서 지워지고 난 후에는 새로 Active Segment를 자동으로 생성해주나요?뭔가 개발자가 알아야하는 문제점은 없을지 궁금합니다.
- 미해결카프카 완벽 가이드 - 코어편
자바 클라이언트 메세지 전송 테스트 실패
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.카프카를 기동해 두고, simple-topic 을 만들었습니다.네트워크 설정도 강의와 같이 설정했습니다.그리고 자바 클라이언트에서 producer로 메세지 전송을 하면 실패하고 있습니다. 다음과 같은 에러 메세지를 받고있습니다.SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.윈도우 클라이언트에서 리눅스 가상 머신으로 핑은 잘 됩니다.리눅스 머신에서 프로듀서 콘슈머 잘 작동도 하구요.
- 미해결카프카 완벽 가이드 - 코어편
멀티브로커에서 consumer 사용하기
안녕하세요 강의에서 멀티브로커 상에서 producer로 데이터를 집어 넣는 것은 실습을 하는데요데이터를 읽을 때는 kafka-dump-log를 사용해서 읽습니다. 혹시 consumer를 사용해가지고는 멀티 브로커 상에서는 읽을 수 없나요? confluent kafka community 버전에서는 불가능한 건가요? 가능하다면 스크립트를 알려주시면 감사하겠습니다.
- 미해결카프카 완벽 가이드 - 코어편
멀티 브로커에서 브로커 중지되는 문제
안녕하세요 강사님, 유익한 강의 감사드립니다.멀티 노드 카프카 클러스터 부분을 EC2(t2.micro) 인스턴스에서 실습중에 문제가 생겨 질문드립니다.1. 주키퍼 기동2. 브로커1 기동 3. 브로커2 기동4. 브로커3 기동순서로 실행중에 브로커3을 기동하면 브로커 1이 중지되는 현상입니다.다시 브로커1을 기동하면 브로커2가 중지되는걸 보면 브로커 3대가 함께 실행되지 않는것 같습니다.바쁘시겠지만 도움 주시면 정말 감사드리겠습니다!
- 미해결카프카 완벽 가이드 - 코어편
클러스터 환경구성시 replication factor 1일때 메시지전송 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님 공부하다가 궁금한게 생겨서 질문드립니다. 현재 클러스터 구성으로 실습을 진행중인데 broker 3개의 cluster에서 replication factor를 1로설정하였습니다. 여기서3번 브로커에 test라는 토픽을 생성후에 bootstrap-server 에 1,2번 서버를 넣고 토픽조회시 test 토픽이 조회가 되던데 복제본이 존재하지않는 상황에서 어떻게 조회가 되는건가요? 클러스터 구성시 자동으로 토픽을 공유하는건가요?3번 브로커에 test라는 토픽을 생성하였고 복제본도 존재하지않고 리더파티션과 통신하는걸로 알고있는데 리더파티션이 3번에 존재함에도 불구하고 브로커 1번이나 2번을 기준으로 topic에 붙어서 producer에서 메시지가 보내지는 이유가 궁금합니다. 감사합니다.
- 미해결카프카 완벽 가이드 - 코어편
테스트 환경 관련 질문입니다.
안녕하세요 강사님. 유익한 강의 감사드립니다. 맥 M1 사용하고 있어, 해당 테스트 환경을 VM 우분트가 아닌 도커로 우분트 서버를 구성해서 진행해도 강의 내용 학습 및 테스트에 큰 무리가 없을까요?
- 미해결카프카 완벽 가이드 - 코어편
카프카 서버기동에서 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님 카프카 서버기동에서 주키퍼와 카프카를 실행한후에 주키퍼부터 내릴경우 카프카 실행이 안되는 이유가 궁금합니다.
- 해결됨카프카 완벽 가이드 - 코어편
Sticky, RoundRobin 설정
Sticky, RoundRobin 설정을 직접 할 순 없나요? 성능비교를 직접 해보고싶어서요.- 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결카프카 완벽 가이드 - 코어편
안녕하세요, at Least once 관련 질문이 있습니다!
안녕하세요, 항상 좋은 강의 남겨주셔서 감사합니다.한 가지 질문 드릴 것이 있어 글을 작성합니다 at least once는 적어도 한번 전송을 반드시 보장하는 것일까요?at least once는 기본적으로 ACK가 오지 않을 경우, 재시도를 하는 방식으로 메세지를 다시 보내어서 적어도 한번 전송하는 것으로 알고 있습니다.그런데 이것과는 독립적으로 다음 두 가지가 존재하고 있습니다.재전송 횟수는 정해져있음.하나의 메세지 배치당 할당된 시간은 정해져있음.재전송 횟수를 초과한다거나, 할당된 시간을 다 사용해버리면 TimeoutException이 발생하는 것으로 알고 있는데요... 이렇게 TimeoutException이 발생해도 '적어도 한번 전송'은 지켜질까요? 아니면 '적어도 한번 전송'이 안될 수도 있는 걸까요? 코드를 살펴보니...canRetry()에서 deilvery.timeout.ms를 초과한지 확인하고...초과한 경우 failBatch() 메서드를 불러오는 것 같습니다.즉, deilvery.timeout.ms를 초과한 메세지 배치는 전송하지 않고 버리는 것 같은데.. 맞을까요?
- 미해결카프카 완벽 가이드 - 코어편
Consumer group 이 지정된 consumer의 auto.offset.reset
강사님 안녕하세요, 강의 잘 듣고 있습니다.Consumer group에 consumer를 새로 추가하며 테스트를 해보다가, 아래 세 가지 경우에 대해 --from-beginning 옵션을 사용해보았습니다.consumer group에서 이미 읽어간 적이 있는 topic에 새로운 consumer를 --from-beginning 옵션으로 생성하면 해당 설정이 먹히지 않고 토픽의 처음부터 읽어오지 않습니다. 새로운 consumer group을 생성하면서 consumer 생성 시 --from-beginning 옵션을 넣으면 토픽의 처음부터 읽어옵니다.consumer group을 지정하지 않고 consumer 생성 시 --from-beginning 옵션을 넣으면 토픽의 처음부터 읽어옵니다.auto.offset.reset 설정은 consumer가 topic에 처음 접속하여 message를 가져올 때의 offset 설정이라고 설명해주셨는데, consumer group이 지정된 경우, consumer group 단위로 해당 설정이 먹히는 것인지 문의드립니다. (1번도 consumer가 새로 생성되어 topic에 처음 접속한다고 생각했습니다..)
- 미해결카프카 완벽 가이드 - 코어편
다음 강의 오픈 일정이 궁금합니다!
안녕하세요, 철민님.철민님의 강의를 처음으로 카프카에 입문한 사람입니다. 너무 질 좋은 강의라 다음에 만든다고 하신 커넥터 강의도 목이 빠지게 기다리고 있습니다!!!! 언제쯤 강의를 출시하실지 궁금합니다!!
- 미해결카프카 완벽 가이드 - 코어편
카프카와 주키퍼랑 통신할때는 브로커 서버의 어느 컴포넌트를 사용해 통신하나요?
카프카와 주키퍼랑 통신할때는 브로커 서버의 어느 컴포넌트를 사용해 통신하나요?컨수머는 컨수머 그룹 코디네이터와 통신하고,, 파티션은 파티션 리더와 통신하는데, >> 질문 : 브로커 서버( 카프카 서버) 와 주키퍼는 어느 컴포넌트를 통해서 통신하나요? 머신러닝때부터 감사합니다 하하... 많이 배우고 있습니다.
- 해결됨카프카 완벽 가이드 - 코어편
만약에 동시에 브로커 서버가 주키퍼한테 리더를 요청하면 누가 리더가 되나요?
쿠버네티스 ETCD는 RAFT 알고리즘에 의해 결정되는데카프카에서도 이런 알고리즘이 존재하는지 궁금합니다.
- 미해결카프카 완벽 가이드 - 코어편
동기 Commit과 ConsumerNetworkClient의 Poll() 관련 질문드립니다!
안녕하세요 철민님, 항상 좋은 강의 감사드립니다질문 드리고 싶은 것이 있어 글을 적습니다. 철민님께서 강의해주신 Consumer의 동기 방식 중에는 이런 내용이 있습니다.브로커에 Commit 적용이 완료된 후에 다시 메세지를 읽어옴. 그런데 위의 부분이 제가 생각하기에는 조금 다른 것 같아서, 질문드리고 싶습니다. 먼저 제가 코드 단위로 살펴보니 다음과 같습니다.ConsumerNetworkClient는 내부적으로 unsent에 보내지 못한 API 요청을 가지고 있음. HeartBeatThread / MainThread는 주기적으로 ConsumerNetworkClient의 trySend()를 호출해서 unsent에 있는 모든 요청을 보냄. Unsent에는 HeartBeat API, Fetch API, Commit API 등이 존재함. 이 말은 Main 쓰레드가 CommitSync()에 blocking 처리가 되어 있어도 HeartBeat Thread에 의해서 Fetch 요청을 계속 보낼 수 있다는 것으로 저는 이해하고 있습니다. 철민님께서 강의에서 설명하신 내용은 다음과 같이 이해하면 될까요? CommitSync()의 실패 유무와 상관없이 ConsumerNetworkClient는 Broker에서 메세지를 Fetch해서 Fetcher에 저장은 해둔다.다만 CommitSync()에 Blocking 되면 Main 쓰레드가 consumer.poll()을 호출하지 못하기 때문에 Fetcher에서 데이터를 가져올 수 없다.라고 이해를 하면 괜찮을까요? 항상 좋은 강의 감사합니다 :)
- 미해결카프카 완벽 가이드 - 코어편
하나의 컨슈머가 서로 다른 토픽을 subscribe하면
강의 예시로 들어주신 것 처럼 하나의 컨슈머가 서로 다른 토픽을 subscribe해서 서로 다른 메시지를 취합(?)해서 새로운 데이터를 생성하여 DB에 적재하거나 다른 토픽으로 전송하신다고 하셨는데요.A 토픽에 들어오는 메시지와 B 토픽에 들어오는 메시지의 짝(?)을 어떻게 맞출 수 있나요...?예시처럼 A 토픽에서 poll한 메시지의 order-id 는 1인데, B토픽에서 poll한 메시지의 order-id는 2인 경우에는 취합할 수 없는 데이터이기 때문에, B토픽에서 poll하는 메시지의 order-id가 1이 나올 때까지 어떠한 조치를 취해야 하지 않을까라는 생각이 들었습니다.
- 미해결카프카 완벽 가이드 - 코어편
NameServer를 찾을 수가 없다고 합니다!
안녕하세요, 철민님. 좋은 강의 감사드립니다다름이 아니라 초기 VM Setup을 할 때 철민님과 동일하게 구성을 했었는데요, PostgreSQl 설치를 할 때, 아카이브 주소를 resolve 하지 못하는 문제가 발생했습니다. 바쁘시겠지만 도움 주시면 정말 감사드리겠습니다! 현상은 아래와 같습니다.현재 VM 네트워크는 아래 어댑터를 사용하고 있습니다.현재 사용중인 네트워크 어댑터의 설정은 다음과 같습니다.
- 미해결카프카 완벽 가이드 - 코어편
NoCommit의 경우 Offset을 어떻게 알고 요청을 하게 될까요?
안녕하세요! 항상 좋은 강의 감사합니다Offset의 경우 어떻게 No Commit을 인식하고 값을 가져오는지 궁금합니다. Commit이라는 행위 자체가 Broker의 __consumer_offsets의 그룹별로 offsets 번호를 갱신하는 것으로 이해하고 있습니다.이 때, No Commit을 하게 되면 Broker는 어떻게 Consumer에게 적절한 Offset을 전달하는 것일까요? 생각한 내용은 아래와 같은데 이게 맞을까요? Broker는 데이터를 전달하기 전에__consumer_offsets에 그 값을 읽고 보낸다.보낸 후에 __consumer_offsets에 그 값을 저장한다.만약, consumer가 offsets commit 메세지를 보내온다면 이 값을 __consumer_offsets에 업데이트한다.No Commit이라면 Commit 메세지가 없기 때문에 온전히 Broker의 논리대로만 __consumer_offsets가 정해진다. 위와 같이 동작하는게 맞을까요? 만약 맞다면, Consumer async에 대해서도 조금 이상한 것 같습니다. 아래와 같은 방식으로 이상하게 동작할 것 같은데.. 제가 생각하는 것이 맞을까요? 브로커는 100까지 전송한 후 __consumer_offsets에 101을 기록한다.consumer는 100의 메세지를 전송 받고, 그 다음 메세지를 전송 요청함과 동시에 offsets = 101을 커밋 요청한다.이 때, 브로커는 300까지 전송한 후 __consumer_offsets에 301을 기록한다.이 때, consumer가 보낸 offsets = 101 커밋이 전달되어 __consumer_offset은 301 → 101로 변경된다.브로커는 offsets가 101이기 때문에 101부터 다시 메세지를 보낸다. 바꿔서 이야기하면, Consumer나 Broker에 에러가 발생하지 않아도 중복이 발생할 가능성이 매우 많은 것처럼 보입니다. 또한, sync() 메서드를 이용 + No Commit으로 할 경우에도 동작이 잘 이해가 되지 않습니다.동일 그룹 ID로 접근할 경우, 이미 __consumer_offsets은 1000 이상의 값이 설정되어 있을 수 있습니다.이 때, sync()로 10을 설정 + No Commit을 할 경우... 어떻게 첫번째부터 꾸준히 값을 불러오게 되는걸까요?예를 들어 Broker에서 전달해준 offsets 값을 꾸준히 업데이트 해주는 것이라면, 초기에 10을 전달해준다고 하더라도 Broker는 __consumer_offsets의 값을 1000 이상을 가지고 있기 때문에 1000 이상의 값을 계속 전달해줘야 할 것 같습니다.그런데 그렇지 않고 10번부터 차곡차곡 전달해주고 있습니다.이 경우에는 Broker가 전달한 값을 매번 __consumer_offsets에 저장하지 않는 것처럼 보입니다. 이것저것 다 따져보면...결론은 다음과 같을텐데 맞을까요...?Consumer Client는 자신이 읽고 있는 토픽 + 파티션별로 Offset 정보를 가지고 있다. poll()을 할 때, Consumer Client는 자신이 가지고 있는 정보를 바탕으로 Broker에게 메세지를 달라고 한다.Broker는 Consumer로부터 Commit이 온 것만 __consumer_offsets에 저장한다. 제가 위에 생각한 경우들이 맞을까요??감사합니다!
- 미해결카프카 완벽 가이드 - 코어편
virtual box 네트워크 설정 영상이 없어요.
네트워크 설정 영상이 빠진 것 같습니다. 확인 부탁 드려요.