public static void StartWithConfig(ClusterConfig config) { Config = config; Remote.Remote.Start(Config.Address, Config.Port, Config.RemoteConfig); Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); Logger.LogInformation("Starting Proto.Actor cluster"); var(host, port) = ParseAddress(ProcessRegistry.Instance.Address); var kinds = Remote.Remote.GetKnownKinds(); Partition.Setup(kinds); PidCache.Setup(); MemberList.Setup(); Config.ClusterProvider.RegisterMemberAsync(Config.Name, host, port, kinds, config.InitialMemberStatusValue, config.MemberStatusValueSerializer).Wait(); Config.ClusterProvider.MonitorMemberStatusChanges(); Logger.LogInformation("Started Cluster"); }
public static void StartWithConfig(ClusterConfig config) { cfg = config; Remote.Remote.Start(cfg.Address, cfg.Port, cfg.RemoteConfig); Serialization.RegisterFileDescriptor(ProtosReflection.Descriptor); Logger.LogInformation("Starting Proto.Actor cluster"); var(h, p) = ParseAddress(ProcessRegistry.Instance.Address); var kinds = Remote.Remote.GetKnownKinds(); Partition.SpawnPartitionActors(kinds); Partition.SubscribeToEventStream(); PidCache.Spawn(); PidCache.SubscribeToEventStream(); MemberList.SubscribeToEventStream(); cfg.ClusterProvider.RegisterMemberAsync(cfg.Name, h, p, kinds, config.InitialMemberStatusValue, config.MemberStatusValueSerializer).Wait(); cfg.ClusterProvider.MonitorMemberStatusChanges(); Logger.LogInformation("Started Cluster"); }
public static ActorSystem WithCluster(this ActorSystem system, ClusterConfig config) { _ = new Cluster(system, config); return(system); }