集群是:多台服务器提供相同功能,增强处理能力和容错能力。所有多台服务器的程序都一样,但各台服务器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