JMS微服务开发示例(十)把标准的web服务器注册到网关

有这么一个场景,有两台相同的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 则可以查询所有注册的服务器信息

原文地址:https://www.cnblogs.com/IWings/p/15434644.html