1
서버의 여러 인스턴스 (Akka 원격 액터)를 실행할 수있는 노드가 있습니다. 클라이언트가 특정 노드에서 라이브 서버를 찾는 범위의 포트를 검색 할 수있게하고 싶습니다.Akka 액터 검색하기
내가 궁금private def scanHost(serverHost: String) = {
val initialPort = 36627
val portsToScan = (initialPort until initialPort + 32).toList
val tries = portsToScan map {
port ⇒ remote.actorFor("EnMAS-service", serverHost, port) ? Discovery
}
val replies = tries filter { future ⇒ {
try {
future.get match {
case reply: DiscoveryReply ⇒ true
case _ ⇒ false
}
}
catch { case _ ⇒ false }
}}
ClientManager.ScanResult(replies map {_.get.asInstanceOf[DiscoveryReply]})
}
,이 작업을 수행하려면 좀 더 관용적 방법이 :
나는 나의 클라이언트 배우에서이 방법을 썼다? 이 사용 사례는 매우 흔한 일이지만 상상할 수는 없습니다.
그래, 기본적으로 클러스터를 설정 중입니다. 각 "클러스터"에는 동료를 동기화하는 임의의 헤드 노드가있는 파리. 다른 종속성을 피하기 위해 Scala 표준 라이브러리와 Akka 프레임 워크에 머물길 바랬습니다. Akka에 현재 내장되어있는 관리자가 있어야하지만 향후 클러스터 지원을 기대합니다. 정보 주셔서 감사합니다. –
글쎄, 당신은 전화를 걸고 클라이언트를 추적하는 랑데뷰 노드를 갖는 것으로 ad-hoc 할 수 있습니다. 분산 된 오류 탐지는 사소한 것이 아니기 때문에 클러스터링을 2.1의 주요 기능으로 발표했습니다 –