private Props CoordinatorProps(string typeName, bool rebalanceEntities) { var allocationStrategy = new LeastShardAllocationStrategy(2, 1); var config = ConfigurationFactory.ParseString(string.Format("")); var settings = ClusterShardingSettings.Create(config, Sys.Settings.Config.GetConfig("akka.cluster.singleton")); return(PersistentShardCoordinator.Props(typeName, settings, allocationStrategy)); }
private Props CoordinatorProps(string typeName, bool rebalanceEntities, bool rememberEntities) { var allocationStrategy = new LeastShardAllocationStrategy(2, 1); var config = ConfigurationFactory.ParseString(string.Format(@" handoff-timeout = 10s shard-start-timeout = 10s rebalance-interval = " + (rebalanceEntities ? "2s" : "3600s"))) .WithFallback(Sys.Settings.Config.GetConfig("akka.cluster.sharding")); var settings = ClusterShardingSettings.Create(config, Sys.Settings.Config.GetConfig("akka.cluster.singleton")) .WithRememberEntities(rememberEntities); return(PersistentShardCoordinator.Props(typeName, settings, allocationStrategy)); }
private CoordinatorState CoordinatorStateToProto(PersistentShardCoordinator.State state) { var builder = CoordinatorState.CreateBuilder() .AddRangeShards(state.Shards.Select(entry => CoordinatorState.Types.ShardEntry.CreateBuilder() .SetShardId(entry.Key) .SetRegionRef(Akka.Serialization.Serialization.SerializedActorPath(entry.Value)) .Build())) .AddRangeRegions(state.Regions.Keys.Select(Akka.Serialization.Serialization.SerializedActorPath)) .AddRangeRegionProxies(state.RegionProxies.Select(Akka.Serialization.Serialization.SerializedActorPath)) .AddRangeUnallocatedShards(state.UnallocatedShards); return builder.Build(); }
private ShardHomeAllocated ShardHomeAllocatedToProto(PersistentShardCoordinator.ShardHomeAllocated shardHomeAllocated) { return ShardHomeAllocated.CreateBuilder() .SetShard(shardHomeAllocated.Shard) .SetRegion(Akka.Serialization.Serialization.SerializedActorPath(shardHomeAllocated.Region)) .Build(); }
private ShardHome ShardHomeToProto(PersistentShardCoordinator.ShardHome shardHome) { return ShardHome.CreateBuilder() .SetShard(shardHome.Shard) .SetRegion(Akka.Serialization.Serialization.SerializedActorPath(shardHome.Ref)) .Build(); }