我正在尝试使用现有的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)。所以我假设我在初始化筒仓时遇到了问题 - 但我无法弄清楚它是什么!
答案 0 :(得分:0)
没有深入挖掘,听起来像一个臭虫。请转发GitHub,我们会尽力帮助您。