有这么一个场景,有两台相同的web服务器A和B,提供的服务一样,但是服务器ip不是固定的,经常变,这时候,就可以把两台服务器都注册到网关,通过浏览器访问网关的url,会直接重定向到A或者B上(根据负载均衡分配)。这样,哪怕在家里用宽带上网,家里放个电脑,也能当web服务器。
注意,网关程序需要最新版本的才支持。
下面是实现步骤:
1、新建一个web server程序
nuget 引用包 JMS.ServiceProvider 版本>= 1.0.3.6
2、在ConfigureServices方法里,初始化MicroServiceHost,并使用RegisterWebServer注册为一个web服务
MicroServiceHost msp;
public void ConfigureServices(IServiceCollection services)
{
msp = new MicroServiceHost(services);
msp.RegisterWebServer("http://localhost:5000");
msp.Build(0, new NetAddress[] { new NetAddress("localhost", 8911) })
.Run();
services.AddRazorPages();
}
3、web服务启动,成功连接网关
假设网关的ip是 127.0.0.1,端口是 8911,这时候,用浏览器访问 http://127.0.0.1:8911/test.html ,浏览器会自动跳转到 http://localhost:5000/test.html
通过js 访问网关,获取web服务器地址
js 可以访问 http://127.0.0.1:8911/?GetServiceProvider={ServiceName:'WebServer'}
网关会返回
{"Port":0,"Host":"127.0.0.1","ServiceAddress":"http://localhost:5000"}
http://127.0.0.1:8911/?GetAllServiceProviders 则可以查询所有注册的服务器信息