나는이 재미있는 문제가 있으며 문제를 식별 할 수 없습니다.Akka 메시지가 모두 즉시 중지됩니다.
나는이 "간단한"akka 응용 프로그램을 가지고 있습니다. 주요 목표는 데이터베이스의 모든 문서를 검토하는 것입니다. 내 주인공은 데이터베이스와 통신하는 단일 액터에게 행을 요청합니다. 검색된 각 문서는 내 주인공에게 반환됩니다. 배치별로 이러한 문서는 균형 조정 발송자가 관리하는 메시지 대기열에 추가됩니다. 소규모 근로자가 그들에게 가서 그들을 분류 할 것입니다.
보통 2 시간에서 4 시간 사이에 몇 시간이 지나면 모든 배우가 동시에 5 초 간격으로 멈 춥니 다.
당신 중 누구라도 비슷한 것을 보았는지 궁금합니다. 자세한 내용은
:
- 나는
- DeadLetters는 이유입니다 기다리고 있습니다 같은 방법을 잠금 어떤 스레드를 사용하지 않는 AkkA 2.2.0
- 없음은
- 에게 메시지가 사용되는 질문 사용 모든 것이 방금 종료된다는 것을 알고 있습니다
감사합니다.
DeadLetters에서 내 밸런싱 디스패처/내 라운드 로빈 라우터와 관련된 액터 만 멈춘 것처럼 보입니다. 내가 놓친 것이 있을까?
내 스칼라
val workers: ActorRef = context.system.actorOf(
Props(new WorkerActor)
.withRouter(FromConfig())
.withDispatcher("balancing-dispatcher"),
"round-robin"
)
내 구성 코드
balancing-dispatcher {
type = BalancingDispatcher
executor = "fork-join-executor"
}
akka.actor.deployment {
/round-robin {
router = round-robin
nr-of-instances = 50
resizer {
lower-bound = 10
upper-bound = 100
}
}
}
재미있는 것 ... 디버깅 할 수 있습니다. 로그에 예외가 있으면 (좋은 로깅이 없으면 지금 추가 할 시간이됩니까?) –
짐작할 수 있겠지만 짐작할 수있는 것은 VM이나 데이터베이스의 자바 메모리 정리와 같은 순간에 일어난다. 그런 다음 충분히 지연되어 다른 프로그래밍 타임 아웃 값 (예 : AwaitResult)에 영향을 미치고 접을 수있다. 시간 제한 값을 모두 밀어 넣으면 (실험을 위해서) 생존하는지 확인하십시오. – LaloInDublin
솔루션을 프로필하셨습니까? DB, CPU, 네트워크, I/O에 과부하가 걸리지 않았습니까? 한 번 전에 비슷한 문제를 해결했습니다. 생산 시스템에서 2 시간 동안 과부하가 걸리자 거의 멈추었습니다. 그것은 MS SQL이 우리의 애플 리케이션이 행을 추가하고 나중에 읽고 제거한 후에 클러스터 된 인덱스를 다시 계산하기 시작한 것처럼 보였다. 그래서 나는 어떤 부분이 자원 모니터링을 사용하고 있는지 알아볼 것이다. –