인프런 커뮤니티 질문&답변
Remote Partitioning
작성
·
78
·
수정됨
1
킬구형 6장 작전3에 첫번째 예제 Manager 노드 실행 명령까지 전체 코드를 볼 방법이 있어?
답변 2
2
KILL-9
지식공유자
전체코드가없었나?? 확인해보고전달해주겠다
아까 너가올린코드를 봤는데 원인은 다음과 같다.
Worker 사이드에서 outbound flow가 실행이안되었더군
1) worker에 스텝이동작했는지확인하라
2) 동작했는데 마스터에 응답이오지않았을것이다.
3) master에 inputChannel을 제거하고 테스트해보라 아님 워커 사이드의 outboundflow를 추가하라
예제코드는 확인해보고 말해주겠다 LGTM
추가 질문:
매니저에 구성에 inputChannel을 지정했는가?KILL-9
지식공유자
매니저 측 inputchannel이 설정되어있다면
워커측엔 outputChannel과 outboundFlow가 설정되어있어야 한다
12시전 강의 예제에 오타가 없는지 확인해보겠다 우선 위에 말한 지침에 맞춰
1) 매니저 구성 코드에 inputchannel이 없다면 워커쪽엔 outputchannel제거(new NullChannel())로 설정해주면된다
2) 매니저 구성 코드에 inputChannel구성이되어있다면 워커쪽에 outputChannel과 IntegrationFlow 구성이 필요하다
-> 6장 작전2의 내용처럼 워커의 결과를 매니저가 수집하는 방법은 위의 두가지 방식이 있다 💀💀
현재 매니저 구성이 어떤가? ABBCD
질문자
managerStep에 inputchannel 지우고
workerstep쪽에 outputchannel 지우니까 잘 돌아가더라고
그리고 예제 2 해보고 있는데 StepExecution에 JobExecution 필드가 있고 JobExecution에 Collection<StepExecution> stepExecutions 필드때문에
Caused by: org.apache.kafka.common.errors.SerializationException: Can't serialize data [StepExecution: id=49, version=3, name=workerStep:2, status=COMPLETED, exitStatus=COMPLETED, readCount=3, filterCount=0, writeCount=3, readSkipCount=0, writeSkipCount=0, processSkipCount=0, commitCount=1, rollbackCount=0, exitDescription=] for topic [step-execution-results]
at org.springframework.kafka.support.serializer.JsonSerializer.serialize(JsonSerializer.java:226)
at org.springframework.kafka.support.serializer.JsonSerializer.serialize(JsonSerializer.java:213)
at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:1046)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:993)
at org.springframework.kafka.core.DefaultKafkaProducerFactory$CloseSafeProducer.send(DefaultKafkaProducerFactory.java:1103)
at org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:852)
at org.springframework.kafka.core.KafkaTemplate.observeSend(KafkaTemplate.java:820)
at org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:623)
at org.springframework.integration.kafka.outbound.KafkaProducerMessageHandler.handleRequestMessage(KafkaProducerMessageHandler.java:527)
at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:146)
at org.springframework.integration.handler.AbstractMessageHandler.doHandleMessage(AbstractMessageHandler.java:105)
... 35 more
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Document nesting depth (1001) exceeds the maximum allowed오류가 나는거 같아
0
안녕하세요, 인프런 AI 인턴입니다. ABBCD님.
Spring Batch에서 Remote Partitioning을 구현하는 과정에서 설정하신 커스터마이징된 Worker 구성이 멈추고 있는 문제로 보입니다. 로그에 따르면 Manager에서 파티션을 성공적으로 생성 및 할당은 되었으나, Worker 노드가 요청을 처리하는 과정에서 중단되고 있는 상황인 것 같습니다.
해결 방안
Worker 구성이 올바른지 확인:
QueueChannel및DirectChannel설정은 제대로 되어 있는지,IntegrationFlow와 연동이 제대로 되고 있는지 확인이 필요합니다.
- 인바운드 및 아웃바운드 채널이 올바르게 연결되고 메시지가 정상적으로 처리되고 있는지 다시 한 번 검토하세요.
Kafka 설정 확인:
- Kafka의
ProducerConfig를 보면bootstrap.servers가 로컬 호스트로 설정되어 있는데, Kafka 및 Zookeeper가 올바르게 실행 중인지 확인하십시오.
- Kafka 주제를 확인하고,
partitioning topic이 제대로 생성되고 partitioning에 참여하고 있는 모든 consumer가 제대로 연결되어 있는지 확인하세요.
- Kafka의
로컬 환경 구성 확인:
- 워커와 매니저를 실행하는 두 시스템 간의 네트워크가 제대로 설정되어 있는지 확인하고, 두 환경에서 동일한 Kafka 클러스터를 사용하고 있는지도 확인하세요.
- 워커와 매니저를 실행하는 두 시스템 간의 네트워크가 제대로 설정되어 있는지 확인하고, 두 환경에서 동일한 Kafka 클러스터를 사용하고 있는지도 확인하세요.
디버깅 추가:
- Worker와 Manager 명령어에 추가적인 로깅을 설정하여 어느 부분에서 작업이 멈추는지 세부적인 정보를 가질 수 있도록 하세요.
- Worker와 Manager 명령어에 추가적인 로깅을 설정하여 어느 부분에서 작업이 멈추는지 세부적인 정보를 가질 수 있도록 하세요.
유사한 문제 해결 사례들:
- 유사한 문제를 겪은 사용자들의 질문들을 통해 도움을 받을 수 있습니다. 아래의 질문 및 답변이 도움이 될 수 있습니다.
- 유사한 문제를 겪은 사용자들의 질문들을 통해 도움을 받을 수 있습니다. 아래의 질문 및 답변이 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





서로 보내고 받기만 하면 오류가 안나는데 예제에는 workerStep쪽에 output도 달려있더라고