110,532
社区成员
发帖
与我相关
我的任务
分享
internal void SiloSetting(ISiloBuilder isb) {
//isb.UseLocalhostClustering();
isb.Configure<ClusterOptions>(options => {
options.ClusterId = Configuration["silo:clusterId"];
options.ServiceId = Configuration["silo:serviceId"];
});
isb.Configure<EndpointOptions>(options => {
//这里的IP决定了是本机 还是内网 还是公网
//options.AdvertisedIPAddress = GetInternalIp();
//options.AdvertisedIPAddress = IPAddress.Loopback;
options.AdvertisedIPAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0].MapToIPv6();
options.SiloPort = int.Parse(Configuration["silo:endpoint:s2s_send_port"]);
// gateway 的端口
options.GatewayPort = int.Parse(Configuration["silo:endpoint:c2s_send_port"]);
//监听的silo 远程连接点
options.GatewayListeningEndpoint = new IPEndPoint(IPAddress.Any, int.Parse(Configuration["silo:endpoint:c2s_listen_port"]));
//监听的silo 远程端口连接点
options.SiloListeningEndpoint = new IPEndPoint(IPAddress.Any, int.Parse(Configuration["silo:endpoint:s2s_listen_port"]));
// 网关(client->silo)的监听终结点
//options.GatewayListeningEndpoint = new IPEndPoint(IPAddress.Any, int.Parse(Configuration["endpoint:c2s_listen_port"]));
// silo之间的(silo->silo)的监听终结点
//options.SiloListeningEndpoint = new IPEndPoint(IPAddress.Any, int.Parse(Configuration["endpoint:s2s_listen_port"]));
});
var assemblys = from i in loads
where !string.IsNullOrWhiteSpace(i.location)
select Assembly.Load(i.location);
foreach (var item in assemblys) {
Console.WriteLine(item.GetName());
isb.ConfigureApplicationParts(parts => parts.AddApplicationPart(item).WithReferences());
}
//isb.AddAdoNetGrainStorage()
isb.UseAdoNetClustering((AdoNetClusteringSiloOptions options) => {
options.ConnectionString = Configuration["dbcon:cluster_mssql"];
options.Invariant = "System.Data.SqlClient";
});
//监听的主silo 远程连接点 为空则创建一个主silo连接点
//isb.UseDevelopmentClustering(new IPEndPoint(IPAddress.Parse("192.168.8.1"), 11111));
}