Matthew Nicholls
Matthew Nicholls

Reputation: 63

Trying to set up Orleans Cluster membership with Consul

I'm trying to use an existing Consul cluster as the membership provider for a test Orleans application.

I get this error when connecting my client app to the Silo

Could not find any gateway in Orleans.Runtime.Host.ConsulBasedMembershipTable. Orleans client cannot initialize.

Digging into the ConsulUtils class, the entries being retrieved have no ProxyPort defined - and are discarded - hence the empty result set.

I initialize the silo like this:

        var clusterConfiguration = new ClusterConfiguration();
        clusterConfiguration.Globals.DataConnectionString = "http://localhost:8500";
        clusterConfiguration.Globals.DeploymentId = "OrleansPlayground";
        clusterConfiguration.Globals.LivenessType = GlobalConfiguration.LivenessProviderType.Custom;
        clusterConfiguration.Globals.MembershipTableAssembly = "OrleansConsulUtils";
        clusterConfiguration.Globals.ReminderServiceType = GlobalConfiguration.ReminderServiceProviderType.Disabled;

        var silohost = new SiloHost("Fred", clusterConfiguration);

        silohost.InitializeOrleansSilo();
        startup = Task.Factory.StartNew(() =>
        {
            return silohost.StartOrleansSilo();
        });
        return true;

And I set my client app up like this:

        var config = new ClientConfiguration();

        config.CustomGatewayProviderAssemblyName = "OrleansConsulUtils";
        config.DataConnectionString = "http://localhost:8500"; 
        config.DeploymentId = "OrleansPlayground";
        config.GatewayProvider = ClientConfiguration.GatewayProviderType.Custom;

        GrainClient.Initialize(config);

Looking at the code in ConsulUtils I can see that the ProxyPort isn't set (i.e. is 0) when the entry is saved. So I'm assuming I have a problem when initializing the silo - but I can't figure out what it is!

Upvotes: 2

Views: 1132

Answers (1)

Gabi Kliot
Gabi Kliot

Reputation: 1383

Without digging deep in, does sound like a bug. Please repost on GitHub and we will try to help you.

Upvotes: 1

Related Questions