集群是:多台服务器提供相同功能,增强处理能力和容错能力。所有多台服务器的程序都一样,但各台服务器IP不一样,端口也可能不一样,我们要把服务器IP和端口告诉Consul,在这里有两种方法
方法一(从命令行读取IP和端口)
在程序入口 Main方法里面添加命令行读取功能代码如下
public static void Main(string[] args)
{
//这是添加命令行功能
new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddCommandLine(args)
.Build();
CreateHostBuilder(args).Build().Run();
}
命令行读取IP和端口,在Startup类里面 方法
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
//DO..
try
{//
string ip = Configuration["ip"];//这个一定要命令行启动,不然获取不到会报错
int port = int.Parse(Configuration["port"]);
}
catch { }
}
命令行启动web服务样例 dotnet apiServerDemo.dll --urls="http://*:5004" --ip="127.0.0.1" --port=5004
apiServerDemo.dll 为web启动程序名
方法二(不建议用)
我们可以把服务器IP和端口放在配置文件里面,然后告诉Consul,这样很台服务器去改配置文件很麻烦,并且容易错,
转载请保留原创地址http://www.luofenming.com/show.aspx?id=ART2019121700001