묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
서버의 콘솔에 관련된 질문
강의 감사하게 잘 듣고 있습니다.궁금한게 있어서 문의드립니다.프로그램을 셋팅하고 서버를 start하면 이렇게 로그가 출력되면서 왼쪽 빌드창에 계속 뭐가 돌고 있는게 보이는데 이게 서버로 설정해놓아서 그런건가요?
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
rebalancing 관리 관련 질문이 있습니다
안녕하세요 강사님rebalancing에 질문이 있습니다 commit이 Fail하여 rebalanced나 assigned partitions 같은 에러가 나올떄는보통 어떻게 관리를 하나요?rebalance가 안날순 없다고 알고 있습니다.보통 어떻게 이런 오류를 관리하고 처리하는지 알고싶습니다.따로 consumer를 restart하는 방법도 있나요? 그러면 문제가 될 게 있는지도 궁금합니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
조인관련해서 실행하려면 오류가 뜹니다
jnilib가 없다는 에러가 뜨는데 뭔가 설정을 해야하는 걸까요?Exception in thread "global-table-join-application-76f56ff6-212f-4940-b4fb-fd8379e83d55-GlobalStreamThread" java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/zy/b19yps9j095601_vkghc25wh0000gn/T/librocksdbjni17187958455810980136.jnilib
-
해결됨카프카 완벽 가이드 - 코어편
브로커가 추가될 때 파티션 재분배
안녕하세요 선생님! 완강 후에 정리하며 이것저것 테스트를 하는 와중에 궁금한게 생겨 질문드립니다. 이미 특정 토픽의 파티션이 브로커들에게 분배된 상태에서, 새로운 브로커가 추가됐을 때 새로운 브로커는 특정 토픽의 파티션을 가질 수 있는 대상으로 선정되지 않는 것 같습니다.새로운 브로커가 추가 됐을 때 새 브로커에도 기존의 토픽의 파티션 재분배를 하는 방법이 있나요?불가능 하다면, 이런 모델을 가지는 이유가 있을까요? 테스트 과정 공유드립니다.broker #1, #2 총 2개 띄운 상태에서 partition 3개, replication 2개의 토픽 생성 (topic-p3r2)Topic: topic-p3r2 Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline: Topic: topic-p3r2 Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2 Offline: Topic: topic-p3r2 Partition: 2 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline:broker #3 추가 후 topic-p3r2 토픽 상태Topic: topic-p3r2 Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline: Topic: topic-p3r2 Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2 Offline: Topic: topic-p3r2 Partition: 2 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline:브로커#3은 후보에도 오르지 않았습니다. 제가 예상했던 건 아래와 같이 브로커#3이 추가되었을 때 브로커#3도 토픽의 파티션을 갖는 것이었습니다.(아래 로그는 제가 상상한 것을 임의로 만든 것입니다)Topic: topic-p3r2 Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline: Topic: topic-p3r2 Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2 Offline: Topic: topic-p3r2 Partition: 2 Leader: 3 Replicas: 3,1 Isr: 3,1 Offline: 감사합니다!!
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
강사님 오류 관련하여 질문이 있습니다.
저는 지금 AIOkafka를 사용하고 있는데 commit()을 해주면 종종commit cannot be completed since the group has already rebalanced이 에러가 나오더라구요찾아보니 aio는 자동으로 리밸런싱 해서 그렇다는데 그렇다면 commit을 어떻게 써야 중복도 안되고 자동 리밸런싱으로 오류도 안생길까요?
-
해결됨15일간의 빅데이터 파일럿 프로젝트
휴 설치 에러 yum install scl-utils
yum install centos-release-scl 까지는 설치가 됐는데utils 부분에서 에러가 나네요 ㅠㅠ 어떻게 해결하나요? 그런데 python27은 정상적으로 설치가 됐어요.. 문제없는건가요? 추가로 휴 설치 이후 HBase 탭에서 DriverCarInfo에 들어왔는데 실시간 적재 데이터가 하나도 없는데 실시간 적재 데이터를 다시 수행해야 하는 건지 아니면 데이터가 날라간건지 궁금합니다 .. ㅠㅠ
-
해결됨카프카 완벽 가이드 - 코어편
토픽에 데이터가 없을 때 offset이 0이 되는 현상 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 안녕하십니까!강의를 열심히 듣고 있는 수강생입니다. 다름이아니라, 토픽에 데이터가 없을 때 offset이 0이 된다는 로그는 어디서부터 기인하는 것인지 궁금하여 질문 드립니다. 제가 이해하기로 AUTO_COMMIT false가 되어있으면 명시적으로 commit을 호출하지 않으면 commit이 되지 않는 것으로 알고있습니다 (테스트도 해보았습니다.) 하지만, 강의 6:00경 시나리오.즉, 토픽에 아무런 데이터가 없는 상태에서 컨슈머만 켠 케이스에서 저는 커밋(commitSync)을 하지 않았는데 poll을 몇번 돌다보면 offset이 0이 되었다는 로그가 발생합니다.(실제로 __consumer_offsets-* 파일에는 offset이 기록되진 않고, 그래서 컨슈머를 껐다 켜면 offset 0부터 읽습니다) 저는 commit을 한적이 없으므로 실제로 __consumer_offsets에는 0으로 기록되지 않는데, 저 로그에 있는 offset이 0은 어디서부터 오는 것일까요? +) 코드상으로는 poll 시점에 updateAssignmentMetadataIfNeeded (maybeSeekUnvalidated) 에서 해당 로그가 찍히는데요, 이건 무슨 정책일까요? 관련 자료가 있으면 공유주셔도 감사합니다. // offset=0 설정이 되어버림 [main] INFO org.apache.kafka.clients.consumer.internals.Fetcher - [Consumer clientId=consumer-group-pizza-assign-seek-maintenance-6-1, groupId=group-pizza-assign-seek-maintenance-6] Fetch position FetchPosition{offset=10, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader=Optional[localhost:9092 (id: 0 rack: null)], epoch=0}} is out of range for partition pizza-topic-0, resetting offset [main] INFO org.apache.kafka.clients.consumer.internals.SubscriptionState - [Consumer clientId=consumer-group-pizza-assign-seek-maintenance-6-1, groupId=group-pizza-assign-seek-maintenance-6] Resetting offset for partition pizza-topic-0 to position FetchPosition{offset=0, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader=Optional[localhost:9092 (id: 0 rack: null)], epoch=0}}. 테스트한 코드 일부 공유드립니다.(필요할 설정들을 했으며, 정말 커밋이 안되고 있는지 확인하기 위해 records.count()>100일 때만 명시적으로 커밋을 한 코드입니다)props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); TopicPartition topicPartition = new TopicPartition(topicName, 0); kafkaConsumer.assign(List.of(topicPartition)); kafkaConsumer.seek(topicPartition, 10L);while(true) { ConsumerRecords<String, String> records = kafkaConsumer.poll(Duration.ofMillis(1_000L)); for(ConsumerRecord<String, String> record: records) { log.info("record key: {}, partition: {}, recordOffset: {}", record.key(), record.partition(), record.offset()); } if (records.count() > 100 ){ kafkaConsumer.commitSync(); log.info("commit sync called"); } } 감사합니다 ^^
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
heartbeat에 관하여 질문이 있습니다.
강사님 heartbeat관련 문제를poll 사이즈를 늘려도 해결이 안되는데 보통 어떤 상황에 맞게 어떻게 설정하여 해결을 하나요?지금 전 aiokafka를 사용중입니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
pring security관련 질문드려요
저는 msa 구축된 서비스를 인수인계 받아 이해하려고 해당 강의를 듣고있습니다.때문에 지금 강의와 함께 진행중인 공부용 project하나, 운영되고 있는 project하나를 로컬소스로 가지고있는데요.spring secure cofig만 구현해주면 공부용 project에서 구동한 eureka에서 -> 운영project의 microservice가 연동이 됩니다.그리고 eureka서버 콘솔에는 8761로 연결실패했다고 뜹니다(처음에 8761로 공부했다가 7777로 변경) 디펜던씨와 websecurity java를 주석처리하면 정상동작합니다.. 왜그런건가요..도대체.. ? [공부project]Eureka(port:7777)-> gateway(port:8000) -> userservice(port: random)[운영project]gateway(port: 80) -> microservice1(8001)
-
미해결실습으로 배우는 선착순 이벤트 시스템
쿠폰 발급을 api로 제공할 경우, client에서 쿠폰 발급 여부를 확인할 수 있는 방법 문의드립니다.
안녕하세요. 강의 잘 들었습니다.강의 들으면서 궁금증이 생겼는데, 만약에 쿠폰 발급 기능을 API로 제공한다고 가정하면client -> 쿠폰 발급 기능 API 호출이 이루어지고쿠폰 발급 기능 API에서는 쿠폰 발급 여부를 확인하고 kafka로 produce하게 되는데, 이때는 실제로 쿠폰이 발급된 상태는 아닐 수도 있을 것으로 예상됩니다(실제 쿠폰이 발급되는 시점은 consumer에서 작업이 정상적으로 완료되어야하므로 트래픽이 많거나 하는 경우 시간차이가 더 심할 것으로 예상됩니다) 이러면 쿠폰 발급 기능 API에서 응답값은 어떤 값을 줘야할까요?쿠폰 발급 여부에서 발급이 가능하다면 쿠폰 발급되는것은 확정이기 때문에 발급되었다는 정보?쿠폰 발급 여부에서 발급이 가능하지만 추가적으로 polling해서 client 쪽에서 확인하도록 처리?제가 생각했을땐 위의 2가지정도로 가능할 것 같은데 강사님 의견이 궁금합니다..! 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
에러 처리 궁금한점
안녕하세요현재는 각 도메인에서 서킷브레이커를 적용했는대,api-gateaway에서는 처리를 해줄 수 없을까요?(공통적으로)현재는 도메인수가 적지만 만약에 라우팅 될 도메인들이 10개 이상 넘어가면 공통적으로 처리할 수 있는 것도 필요해보여서요. (어느 도메인으로 라우팅될조 모르지만)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
예외처리
안녕하세요. 문득 궁금한 점이 생겼는대요..주문이 성공하고나서 카탈로그 쪽에서 장애가 발생해서 롤백을 해야한다고 했을 때는 처리방안이 어떻게 되나요??찾아보니까 사가패턴 ? 이런거 사용하는것으로 보이는대, 다른 방안도 있을까요? (처리가 좀 어렵네요)
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
커넥트를 이용한 데이터 마이그레이션 질문드립니다
안녕하세요, 양질의 강의 항상 감사드립니다!다름이 아니라 현재 실무에서 스프링 배치를 이용해서 데이터를 DB to DB 로 마이그레이션하는 업무가 있는데 이를 강의에서 배운 카프카 커넥트를 활용하면 좋을것 같아서 고민중인데 잘 안풀리는 부분이 있어 질문드립니다 데이터 가공문제DB to DB 로 이관시 가장 좋은것은 커넥트만 써서 코드개발없이 마이그레이션 해버리는 것이 좋을것같은데 막상 실제 마이그레이션 할 때는 source 에서 퍼온 데이터를 sink 시 몇몇 컬럼은 데이터 가공하거나 없어지는 등 가공에 약간 손을 봐야하는 경우가 종종 있어서 이런 케이스에 대해 어떻게 해결을 해야할 지 고민입니다.고민을 해봤을 때 해결방안으로는 streams api 를 껴서 아래와 같은 아키텍쳐로 해결하는 방법이 있을 것 같은데요source -> topic -> kafka stream api 등을 통해 데이터 가공 후 topic 전송 -> sink 커스텀 sink 나 source 커넥터 개발어느 방법이나 결국 추가개발이 필요한건 매한가지라 현재 배치로 개발해놓은 구조를 커넥트를 이용하도록 바꿨을 때 이점이 명확하게 안보여서 좀 고민입니다... 데이터 마이그레이션 후 검증문제실무에서 배치로 마이그레이션 후 원본데이터가 있는 source db 와 마이그레이션 한 sink db 간에 건수비교 등 데이터 이관이 잘 되었는지 대사비교를 진행하는데요, 카프카 커넥트로 전환한다고 해도 이러한 대사비교는 여전히 필요하지 않을까 싶은데 실무에서 카프카 커넥트를 활용할 때 이러한 검증 문제를 어떻게 해결하는지 궁금합니다 카프카 커넥트를 실무에서 활용한 경험이 없다보니.... 강사님이라면 이러한 문제에 직면했을때 어떤 생각을 가지실 지 궁금합니다!감사합니다:)
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
docker 환경에서 eureka 대시보드 작동
8761:8761 로 포트 바인딩해서 정상 기동했고, docker log 에서도 정상적으로 기동해서 문제없어보이는데, 브라우저로 대시보드 웹페이지 접근하면 "ERR_EMPTY_RESPONSE" 로 나옵니다. 도원님 이미지로 기동해도 똑같은 현상입니다...!
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
cdc 동기화 테스트 환경 초기화
안녕하세요열심히 수강중인 수강생입니다.mysql과 postgresql을 동기화하는 cdc를 테스트중인데무언가 꼬였나봅니다.초기화하는 방법이 궁금합니다.강의의 어느 부분을 참고하면 되는지 답변 부탁드립니다감사합니다.
-
미해결카프카 완벽 가이드 - ksqlDB
ksqlDB 2부 강의의 PDF 문서는 어디서 다운 받을 수 있을까요
ksqlDB 2부 강의의 PDF 문서는 어디서 다운 받을 수 있을까요
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
파티션 1개당 컨슈머 1개가 좋다고 말씀 하셨는데용
강사님께서 컨슈머 개수는 토픽의 파티션 개수보다 같거나 작아야 한다고 하셨는데 토픽이 두개면 컨슈머를 새로 파면 될까요?파티션과 컨슈머가 1:1이여야 베스트라고 이해했는데 꼭 그렇지도 않을수 있나요? 업무와 강의 사이에서 헷갈리네용 ㅎㅎ
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
commit을 꼭 안해도 되나요?
commit을 꼭 하지 않아도 record가 안전하게 처리되는 방법이 있을까요? 파티션 하나에 토픽 하나로 써비스 하고 있는데 선생님 강의 보며 commit을 해야하겠다 생각했지만,기술팀 분에게 여쭈니 꼭 commit하지 않아도 된다고 파이프라인은 그냥 데이터 보내는거라고 해서 안해도 된다고 하시는데 음..어떻게 이해를 하면 좋을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Kafka 동기화 문제에 대해 질문이 있습니다.
항상 좋은 강의 감사합니다. 궁금한 점이 있어 질문을 남깁니다. Kafka를 이용해서 멀티 서버에서 하나의 DB를 사용하여 동시성 문제를 해결하는 것을 이해했습니다. 상품 제고가 0이 되면 더 이상 주문을 못하도록 하게 하고 싶습니다. 하지만 Kafka 요청을 통해 비동기로 주문을 하기 때문에 주문을 신청한 순간에는 재고가 있어 주문이 되었지만 Kafka의 모든 처리를 하고 나니 재고가 0이 되어 사실 주문할 수 없는 상황이었습니다. 이런 상황이 발생할 수도 있지 않나요??이럴 때는 어떻게 대처를 해야 하나요??쓰기 작업과 읽기 작업에서 동기화 문제는 어떻게 처리할 수 있나요?
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
connect-distributed.properties 설정
궁금한 사항이 있어서 질문 남깁니다.connect-distributed.properties 설정 관련 내용입니다.3노드 클러스터로 구성했는데 커넥트 기동하기 강의 편에서설정하는 부분이 있습니다.제가 3노드로 구성했는데 # 삭제하고listeners=HTTP://192.168.20.26:8083,HTTP://192.168.20.27:8083,HTTP://192.168.20.28:8083이렇게 구성하는게 맞는건지 궁금합니다.현재 설정은 #으로 주석 처리되어있습니다.감사합니다.