コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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();
        }
コード例 #4
0
 private ShardHomeAllocated ShardHomeAllocatedToProto(PersistentShardCoordinator.ShardHomeAllocated shardHomeAllocated)
 {
     return ShardHomeAllocated.CreateBuilder()
         .SetShard(shardHomeAllocated.Shard)
         .SetRegion(Akka.Serialization.Serialization.SerializedActorPath(shardHomeAllocated.Region))
         .Build();
 }
コード例 #5
0
 private ShardHome ShardHomeToProto(PersistentShardCoordinator.ShardHome shardHome)
 {
     return ShardHome.CreateBuilder()
         .SetShard(shardHome.Shard)
         .SetRegion(Akka.Serialization.Serialization.SerializedActorPath(shardHome.Ref))
         .Build();
 }