diff --git a/src/Akka.Cluster.Hosting/AkkaClusterHostingExtensions.cs b/src/Akka.Cluster.Hosting/AkkaClusterHostingExtensions.cs index bf9f959..fd3ae5e 100644 --- a/src/Akka.Cluster.Hosting/AkkaClusterHostingExtensions.cs +++ b/src/Akka.Cluster.Hosting/AkkaClusterHostingExtensions.cs @@ -1650,17 +1650,20 @@ private static AkkaConfigurationBuilder ApplyClusterClientDiscovery( this AkkaConfigurationBuilder builder, ClusterClientDiscoveryOptions options) { - options.Apply(builder); + options.DiscoveryOptions.Apply(builder); builder .AddHocon(ClusterClientReceptionist.DefaultConfig(), HoconAddMode.Append) .AddHocon(DiscoveryProvider.DefaultConfiguration(), HoconAddMode.Append); builder.WithActors((system, registry) => - { - var clusterClient = system.ActorOf(ClusterClient.Props(ClusterClientSettings.Create(system)), options.ClientActorName); - registry.TryRegister(clusterClient); - }); + { + var config = options.ToConfig() + .WithFallback(system.Settings.Config.GetConfig("akka.cluster.client")); + + var clusterClient = system.ActorOf(ClusterClient.Props(ClusterClientSettings.Create(config)), options.ClientActorName); + registry.TryRegister(clusterClient); + }); return builder; } diff --git a/src/Akka.Cluster.Hosting/ClusterClientDiscoveryOptions.cs b/src/Akka.Cluster.Hosting/ClusterClientDiscoveryOptions.cs index 725b907..3d5d97d 100644 --- a/src/Akka.Cluster.Hosting/ClusterClientDiscoveryOptions.cs +++ b/src/Akka.Cluster.Hosting/ClusterClientDiscoveryOptions.cs @@ -1,6 +1,7 @@ using System; using System.Text; using Akka.Cluster.Tools.Client; +using Akka.Configuration; using Akka.Hosting; namespace Akka.Cluster.Hosting; @@ -49,13 +50,14 @@ public sealed class ClusterClientDiscoveryOptions /// The name of the cluster client actor /// public string? ClientActorName { get; set; } + + public Config ToConfig() => ToString(); - internal void Apply(AkkaConfigurationBuilder builder) + public override string ToString() { Validate(); var sb = new StringBuilder(); - sb.AppendLine("akka.cluster.client {"); sb.AppendLine("use-initial-contacts-discovery = true"); sb.AppendLine("discovery {"); sb.AppendLine($"method = {DiscoveryOptions.ConfigPath.ToHocon()}"); @@ -68,10 +70,9 @@ internal void Apply(AkkaConfigurationBuilder builder) sb.AppendLine($"interval = {RetryInterval.ToHocon()}"); if (Timeout is not null) sb.AppendLine($"resolve-timeout = {Timeout.ToHocon()}"); - - sb.AppendLine("}}"); - - DiscoveryOptions.Apply(builder); + sb.AppendLine("}"); + + return sb.ToString(); } private void Validate()