2016-09-15 5 views
0

Couchbase에서 작동하는 마이크로 서비스가 있습니다. 내 서비스는 현재 ID로 가지고있는 문서의 수를 Couchbase에 요청해야합니다. 번호가 낮 으면 다른 문서를 만듭니다.Scala와 Akka에서 올바른 순서로 작업을 수행합니다.

제 문제는 비 블로킹입니다. 문서를 처음 만들 때 많은 요청이있는 경우 두 번째 요청 은 문서 수가 많다는 것을 보여줍니다 (처음 만들지 않기 때문에). 아직 문서)이므로 다른 새 문서가 만들어집니다.

이 문제를 해결하기 위해 id 당 하나의 액터로 akka에 액터 시스템을 만들었습니다. 첫 번째 작업이 완료 될 때까지 (Await로) 차단합니다. 이것은 내가 원하는 순서를 제공합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?

하지만 카프카 제작자를이 'Await'Future에 추가하면 kafka가 다운 될 때이 미래가 너무 오래 걸려 Await에 대한 시간 제한이 생길 수 있습니다. 나는이 프로듀서를 Future에 넣었지 만, 이후에는 Executor Context에 많은 스레드가 없습니다. 내가 그 서비스를 사용할 수 없게하는 경향이 외부 서비스를 호출하고있을 때 http://doc.akka.io/docs/akka/snapshot/common/circuitbreaker.html

나는 보통이 사용

+0

명확한 표현; 고정 문법 오류. – Prune

답변

0

난 당신이 여기에 회로 차단기를 사용할 수 있다고 생각합니다.

+0

Circuit Breake는 제 질문이 아닙니다. 나는이 상황에서 올바른 순서가 필요하지 않다면 물어 보지 말고. –

관련 문제