74 lines
2.0 KiB
Plaintext
74 lines
2.0 KiB
Plaintext
# Base Akka.NET cluster configuration for OtOpcUa fused-host nodes.
|
|
#
|
|
# Roles, seed nodes, public hostname/port, and the actor system name are overlaid
|
|
# at runtime by AkkaHostedService — see ZB.MOM.WW.OtOpcUa.Cluster/AkkaHostedService.cs.
|
|
# Everything else here is the cluster-wide tuning that should match across nodes.
|
|
#
|
|
# Tuning sourced from ScadaLink (ScadaLink.Host/Actors/AkkaHostedService.BuildHocon);
|
|
# any divergence must be deliberate and recorded in docs/v2/Architecture.md.
|
|
|
|
akka {
|
|
extensions = [
|
|
"Akka.Cluster.Tools.PublishSubscribe.DistributedPubSubExtensionProvider, Akka.Cluster.Tools"
|
|
]
|
|
|
|
actor {
|
|
provider = cluster
|
|
}
|
|
|
|
remote {
|
|
dot-netty.tcp {
|
|
hostname = "0.0.0.0"
|
|
port = 4053
|
|
}
|
|
transport-failure-detector {
|
|
heartbeat-interval = 2s
|
|
acceptable-heartbeat-pause = 10s
|
|
}
|
|
}
|
|
|
|
cluster {
|
|
seed-nodes = []
|
|
roles = []
|
|
min-nr-of-members = 1
|
|
|
|
split-brain-resolver {
|
|
active-strategy = "keep-oldest"
|
|
stable-after = 15s
|
|
keep-oldest {
|
|
down-if-alone = on
|
|
}
|
|
}
|
|
|
|
failure-detector {
|
|
heartbeat-interval = 2s
|
|
threshold = 10.0
|
|
acceptable-heartbeat-pause = 10s
|
|
}
|
|
|
|
down-removal-margin = 15s
|
|
run-coordinated-shutdown-when-down = on
|
|
|
|
singleton {
|
|
singleton-name = "singleton"
|
|
}
|
|
singleton-proxy {
|
|
singleton-identification-interval = 1s
|
|
}
|
|
}
|
|
|
|
coordinated-shutdown {
|
|
run-by-clr-shutdown-hook = on
|
|
default-phase-timeout = 30s
|
|
}
|
|
}
|
|
|
|
# Pinned dispatcher used by OpcUaPublishActor (Task 44) so the OPC UA SDK sees
|
|
# only one thread per actor instance — its session/subscription locks expect
|
|
# strict single-threaded access.
|
|
opcua-synchronized-dispatcher {
|
|
type = "PinnedDispatcher"
|
|
executor = "thread-pool-executor"
|
|
throughput = 1
|
|
}
|