尝试使用Consul设置Orleans Cluster成员资格

时间:2016-10-29 23:52:45

标签: consul orleans

我正在尝试使用现有的Consul集群作为测试Orleans应用程序的成员资格提供程序。

将客户端应用程序连接到Silo时出现此错误

  

在Orleans.Runtime.Host.ConsulBasedMembershipTable中找不到任何网关。奥尔良客户无法初始化。

深入研究ConsulUtils类,检索的条目没有定义ProxyPort - 并被丢弃 - 因此空结果集。

我像这样初始化筒仓:

        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;

我将客户端应用程序设置为:

        var config = new ClientConfiguration();

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

        GrainClient.Initialize(config);

查看ConsulUtils中的代码我可以看到在保存条目时没有设置ProxyPort(即为0)。所以我假设我在初始化筒仓时遇到了问题 - 但我无法弄清楚它是什么!

1 个答案:

答案 0 :(得分:0)

没有深入挖掘,听起来像一个臭虫。请转发GitHub,我们会尽力帮助您。