consitent-hashing-pool
라우터의 경우 아래에 HOCON
이 주어지면 hashMapping을 어떻게 지정해야합니까?Hocon을 사용할 때 HashMapping을 지정하는 방법
let config = Configuration.load()
let systemName = config.GetString("app-config.actorsystem", "my-system")
let system = System.create systemName config
let collectorRouter =
let hashMapping (msg:obj) =
match msg with
| :? Message as msg ->
match msg with
| Parse (_, req) -> req.uniqueId |> box
| _ -> "-" |> box
ConsistentHashingPool (10, ConsistentHashMapping hashMapping)
let dataCollectorProps =
{ props (dataCollector settings.collector) with
Router = Some (collectorRouter :> RouterConfig)} //(FromConfig.Instance.WithFallback collectorRouter)
let test = spawn system "data-collector" <| dataCollectorProps
Router = Some (collectorRouter :> RouterConfig)
작업
Router = Some (FromConfig.Instance.WithFallback collectorRouter)
을 감안할 때
akka {
actor {
serializers {
wire = "Akka.Serialization.WireSerializer, Akka.Serialization.Wire"
}
serialization-bindings {
"System.Object" = wire
}
deployment {
/data-collector {
router = consistent-hashing-pool
nr-of-instances = 10
}
}
}
loggers = ["Akka.Logger.NLog.NLogLogger,Akka.Logger.NLog"]
}
는
hashMapping 기능을 지정하는 올바른 방법은 무엇입니까하지 않습니다?
편집 한 콘솔에서 경고는
Akka.Routing.ConsistentHashingRoutingLogic|Message [Message] must be handled by hashMapping, or implement [IConsistentHashable] or be wrapped in [ConsistentHashableEnvelope]
hocon에서 'nr-of-instances'를 3으로 변경했으며 라우터에 3 개의 경로가 있습니다. 해싱 또한 효과가있었습니다. 라우터가 코드와 호콘 모두에 정의되어있을 때, hocon과 코드에서 config를 사용하여 라우터를 선택합니다. – ritcoder
내가 아는 한, 코드와 HOCON 모두에서 설정이 정의되면 HOCON이 우선합니다. – Gigi
Noted. 그때는 괜찮습니다. – ritcoder