묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전에서 바로 써먹는 Kafka 입문
적정 파티션 개수 계산하는 방법 질문드립니다
안녕하세요 강사님 질문을 자주올리는것같아 죄송하고 답변달아주셔서 감사합니다.pdf에 나온것처럼 프로듀서가 보내는 메시지량은 120하나의 쓰레드가 처리하는 메세지량 0.3 을기준으로토픽의 파티션을 400개로 생성했을때어플리케이션 서비스의 max 스레드가 기본값 200이라 가정하에 파티션 400개를 처리하려면 스레드가 200개가 더 필요하니 대부분 실무에서는 200 스레드 기준으로 2개의 컨슈머 서비스를 구동시키나요?추가로 부하테스트 강의에도 지금 강의에 설명되는 파트가 ( 카프카 파티션구하기 관련? ) 따로 있는지도 궁금합니다
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션5 33 질문드립니다
안녕하세요 강사님지금은 샘플 프로젝트라 하나의 컨슈머 서버에서파티션3개를 처리하고있는데만약 email.send topic기준으로 파티션을 5개 생성했을때 컨슈머 서버도 5개를 띄우는게 일반적인가요?실무기준으로 궁금합니다추가로 하나의 컨슈머에서 지금은 email.send 토픽만 구독하고있는데 만약 토픽이 slack.send , telegram.send 등 여러가지가 있을경우 컨슈머 어플리케이션에서 카프카리스너를 다중으로 등록하는게 일반적인가요 아니면 각 토픽마다 서비스를 띄우는게 일반적인가요?만약 각 토픽마다 서비스를 띄운다가정했을때email.send topic 파티션 5개 => 서비스 5개 구동 필요slack.send topic 파티션 3개 => 서비스 3개 구동 필요총 8개가 띄워지는게 일반적인건지 .. 실무기준으로 궁금합니다
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
로컬 개발환경 구축시 k8s 환경에 대한 테스트는 어떻게 하는지 궁금합니다.
안녕하세요. 로컬 k8s 구축에 대한 궁금증이 생겨서 질문남깁니다.개발환경을 구축해야하는 상황이 생겨 강사님의 개발환경 구축 편을 보았는데, 도커를 사용해서 이미지를 띄우는 작업 까지만 하셨더라구요.저는 로컬 k8s 환경을 구축한 뒤 소스코드 변경시 로컬 k8s 환경에서 확인하는 작업까지라고 생각했었습니다.여기서 궁금한게 로컬에서 개발시 구축환경은 어디까지인가? 라는 점입니다. 감사합니다.
-
미해결실전에서 바로 써먹는 Kafka 입문
aws아닌 도커로는 안되나요?
aws 인스턴스 종료를 하는 경우 퍼블릭 ip가 바뀌어 proeprties내용을 변경해야하는 상황이 계속 발생하는데 도커로 진행해도 강의 수강에 지장없을까요?
-
미해결실전에서 바로 써먹는 Kafka 입문
파티션 증가 질문드립니다
안녕하세요 강사님파티션의경우 줄일수 없다고 설명해주셨는데만약 예로들어 실무에서 하나의 토픽 기준으로 3개의 파티션으로 작업도중 데이터 처리량이 많아져서 랙이 쌓이는걸 확인했을때파티션을 늘리고 컨슈머도 늘린다고 가정했을때따로 문제는없는걸까요? ( 줄이는경우에는 새로운 토픽을 생성하여 마이그레이션 한다고 설명해주셨는데 늘리는건 실제 사용중 파티션을 늘렸을때 아무런 문제가 없는지 궁금합니다 )
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션7 51 컨슈머서버 무한 리로드?
이전에 컨슈머 서버 ( email-send-consumer ) 에서는 문제가없었는데마지막 email-service에서는2025-08-28T23:50:12.394+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] Discovered group coordinator 13.209.11.23:9092 (id: 2147483646 rack: null)2025-08-28T23:50:12.394+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] Request joining group due to: rebalance failed due to 'The coordinator is not available.' (CoordinatorNotAvailableException)2025-08-28T23:50:12.396+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] Discovered group coordinator 13.209.11.23:9092 (id: 2147483646 rack: null)2025-08-28T23:50:12.396+09:00 INFO 40252 --- [ner#0.dlt-1-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-30, groupId=email-service.dlt] (Re-)joining group2025-08-28T23:50:12.396+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] Request joining group due to: rebalance failed due to 'The coordinator is not available.' (CoordinatorNotAvailableException)2025-08-28T23:50:12.399+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] (Re-)joining group2025-08-28T23:50:12.401+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] (Re-)joining group2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-1-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-30, groupId=email-service.dlt] Successfully joined group with generation Generation{generationId=261, memberId='consumer-email-service.dlt-30-5a032e9e-a903-4fb7-9004-487d74eb6c79', protocol='range'}2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] Successfully joined group with generation Generation{generationId=261, memberId='consumer-email-service.dlt-31-0cdcda6c-6ddf-4e0b-980a-868f587ed2bd', protocol='range'}2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] Successfully joined group with generation Generation{generationId=261, memberId='consumer-email-service.dlt-29-2b16177f-2cc3-44c0-b244-50109078218e', protocol='range'}2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-1-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-30, groupId=email-service.dlt] Finished assignment for group at generation 261: {consumer-email-service.dlt-31-0cdcda6c-6ddf-4e0b-980a-868f587ed2bd=Assignment(partitions=[]), consumer-email-service.dlt-29-2b16177f-2cc3-44c0-b244-50109078218e=Assignment(partitions=[user.signed-up.dlt-0]), consumer-email-service.dlt-30-5a032e9e-a903-4fb7-9004-487d74eb6c79=Assignment(partitions=[])}...이런식으로 계속 로그가 반복됩니다프로듀서에 발행은 완료됐고 cli에서 메세지도 확인했는데컨슈머서버에서 저렇게 자꾸 정상적으로 작동을 하지않습니다 @Service public class UserSignedUpEventConsumer { private final EmailLogRepository emailLogRepository; public UserSignedUpEventConsumer(EmailLogRepository emailLogRepository) { this.emailLogRepository = emailLogRepository; } @KafkaListener( topics = "user.signed-up", groupId = "email-service", concurrency = "3" ) @RetryableTopic( attempts = "5", backoff = @Backoff(delay = 1000, multiplier = 2), // 1 초 2초 4초 8초 16초 5번 dltTopicSuffix = ".dlt" ) public void consume(String message) throws InterruptedException { UserSignedUpEvent userSignedUpEvent = UserSignedUpEvent.fromJson(message); // 실제 이메일 발송 로직 String receiverEmail = userSignedUpEvent.getEmail(); String subject = userSignedUpEvent.getName() + "님 회원가입 ㅊㅋ"; Thread.sleep(3000); System.out.println("메일 발송 완료"); // 이메일 발송 로그 저장 EmailLog emailLog = new EmailLog(userSignedUpEvent.getUserId(), receiverEmail, subject); emailLogRepository.save(emailLog); } 강사님 코드랑 이전 email-send-consumer 서비스 코드 및 야믈파일도 몇번 확인했는데 다른점이 없습니다 왜그런걸까요
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션6 43 질문드립니다
안녕하세요, 강의 잘보고있습니다.프로듀서나 컨슈머서버 야믈파일에서 3개의 ip를 적고있는데만약 컨슈머 서버를 2대이상 돌렸을때 기준으로 각 서비스마다 ip를 똑같이 3개 적어야하는건가요? 아니면 1번 서버에서는 리더 노드ip 만2번 서버에서는 팔로워 파티션 노드 ip 만이런식으로 나눠서 적용하나요?또 저런식으로 서버가 나눠져있는경우 순차적으로 메세지 처리는 이전에 강의에서 언급한 하나의 파티션은 단 하나의 컨슈머에만 할당되고 컨슈머는 메세지를 순서대로 처리한다했는데 순서에는 상관이 없는걸까요? 추가로 그다음 섹션보다가 궁금한게현업에서도 라운드로빈방식을 대부분 사용하나요?실무기준에서 궁금합니다!
-
미해결대세는 쿠버네티스 (초급~중급편)
vm 실행 후 rocky linux 초기 세팅 화면이 안나옴
kubernetes cluster 설치 - mac 과정 중3-3) 생성된 vm 실행 후 rocky linux 초기 세팅 과정에서 Install Rocky Linux 메뉴가 나오지 않고이러한 화면이 나옵니다.강의 메뉴얼 대로 진행하려면 어떻게 해야할까요?네트워크 설정까지는 동일하게 진행 했습니다!
-
미해결대세는 쿠버네티스 (초급~중급편)
대시보드 사이트 연결 할 수 없음 > 마스터 노드 접속 해제 > 재 연결 시도 > 실패
pod 실습 강좌 > node schedule > 파드 추가몇분후쿠버네티스 대시보드 > 사이트 연결할 수 없음xshell 확인 > 마스터 노드 연결 해제됨 > 재연결 시도 실패
-
미해결대세는 쿠버네티스 (초급~중급편)
Operator / CRD 을 강의에서 다루는지 궁금합니다.
안녕하세요. 강사님 카프카를 K8S에 설치할 때 Operator / CRD 라는 개념이 나오는데요. 위 개념은 강사님 전체 로드맵중에서 어떤 강의에 등장하는지 알 수 있을까요?
-
미해결대세는 쿠버네티스 (초급~중급편)
섹션8 강의자료 중 설명하지 않은 내용 질문
섹션 6.[중급편] 기본 오브젝트 - 인프런 위 강의자료 p.13에서의 내용은 강의에서 설명을 합니다. p.14를 끝으로 강의가 종료되는데요.p.15를 보면 p.13과 매우 비슷한 그림을 갖으나link부분이 Kubelet에서 WorkerNode로 향하는 화살이 추가로 보입니다.어떤 것을 설명하시려고 장표를 넣으신 것인지 궁금합니다~
-
미해결대세는 쿠버네티스 (초급~중급편)
replicaset을 delete할 때 cascade 영향을 받는 Pod들
안녕하세요 선생님,먼저 세심한 실습환경을 안내해주신 덕분에 강의를 재밌게 듣고 있습니다. 감사합니다.카페에 아래와 같은 글을 남기셨습니다.https://cafe.naver.com/kubeops/503▶ Pod만 남기고 Controller(ReplicaSet)만 삭제하는 방법 kubectl delete replicaset replica1 --cascade=orphan * Pod를 직접만들고 Controller에 수동으로 연결했을 때만 동작해요. 그래서 직접 실습을 진행해봤습니다.Pod : 직접생성ReplicaSet : 직접생성 및 위 Pod와 수동연결 위 순서대로 진행하면 아래와 같은 Pod상황이 만들어집니다. 위 상황에서 delete cascade옵션 명령어를 수행했을 때 두 Pod모두 살아있는 것을 확인했는데요. 카페에 남기신 글은 pod1만 살아남는다고 설명을 하신것 같은데 제가 잘못해석했는지 궁금합니다~
-
미해결실전에서 바로 써먹는 Kafka 입문
kafka [37강의]
[1] 기존 Kafka 프로세스 확인 및 종료[2] 포트 사용 여부 확인[3] 깔끔하게 다시 시작bin/kafka-server-start.sh config/server.properties 같은 에러가 뜹니다.에러 원인을 확인하기가 힘드네요 ㅠ
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션6. 36,37
섹션6. 36,37 강의를 실습하고 다음날 다시 bin/kafka-server-start.sh config/server.properties명령어 써서 실행시키려니까 이렇게 뜨고 실행이 안됩니다. 원인이 뭘까요?
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
실무 관점에서
안녕하세요.이제 sprint1 을 통해 기본적인 개념정도만 습득한 상태입니다.spring boot 애플리케이션 -> K8s 배포를 기준으로 실제 앱 내에서 사용되는 환경변수 설정과 K8s내의 컨피그맵, 시크릿 등에 대한 설정 매칭 등을 보고 싶은데sprint 1 -> 지금 강의를 먼저 수강 해도 이해가 괜찮을까요? [👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다]1. 실습 중 본인의 환경이 가이드와 다른 부분이 있었다면 말씀해주세요.2. 해당 문제의 발생 빈도(재설치 여부)와 문제 해결을 위해 시도해본 케이스를 말씀해 주시면 원인 파악에 큰 도움이 됩니다.3. 에러 메시지만 봐서는 저도 모르는 경우가 많아요. 그전에 했던 작업이 포함된 캡쳐 화면도 부탁 드려요.4. 영상 내용에 대한 질문 시 해당 시간을 같이 올려 주시면 답변을 드리는 시간이 더 빨라집니다.5. 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)6. 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
K8s 대시보드의 신규 리소스 생성시 이슈
대시보드에서 복사해서 내용 넣었을 때해당과 같은 이슈가 발생하시는 분들 계시면..vi 로 yaml 하나 만들어서 붙여넣은 뒤에chmod +x ~.yamlk apply -f ~.yaml하니까 가능합니다.혹시 헷갈리시는 분들 참고!!!...
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
모든 컨테이너가 running 중이나 그라파나에 나타나지않음
왜이럴까요+수정 확인해보니 로키가 라벨을 수집 못하고있다고합니다 +수정 systemctl restart chronyd.service 통해서 explore -> loki -> label browser 확인결과 파드로 떠진것들 중 default namespace 의 app만 나타나지 않습니다. +Explore에는 안뜨지만 dashboard namespace의 default를 통하여 확인 및 해결 완료하였습니다.
-
미해결대세는 쿠버네티스 (초급~중급편)
데시보드에서 파드 생성 안됨
생성이 안되는데 어떤 문제인가요
-
미해결실전에서 바로 써먹는 Kafka 입문
msa 강좌 관련해서 질문 있어서 글 남깁니다!
안녕하세요!수업 정말 잘 듣고 있는 수강생입니다!!다름이 아니라 msa 강좌 일정 관련해서 언제쯤 나오는지 궁금해서 글 남깁니다! (어디에 질문 남길지 고민하다가 그냥 여기에 남겼어요..ㅠㅠ)
-
미해결실전에서 바로 써먹는 Elasticsearch 입문 (검색 최적화편)
정말 사소한 질문이지만 ... 궁금해서 물어봅니다.
안녕하세요... 정말 사소한 질문이지만...controller 를 만들때@GetMapping() 이런식으로 () 빈 괄호를 쓰시던데 혹시 특별한 이유가 있을까요 ???? 뭔가 가독성이 좋다거나...?? 이런 스타일은 첨봐서 신기해서 문의드립니다 !