热线:0532-83801234

2019-10-21

.Net Core 微服务(一) Ocelot 最简单的入门Demo

        一、什么是Ocelot?
       Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Consul集成,并且这些功能都只需要简单的配置即可完成 。

        简单的说,Ocelot是一堆的asp.net middleware组成的一个管道。当有收到请求后会用一个RequestBuilder去创建一个HttpRequestMessage发送(或请求)到下游服务器,等下游服务器返回Response后再由一个Middleware将HttpRequestMessage映射到当前请求Context中的Response上,并返回给请求者。

        1、搭建一个Ocelot项目
        2、修改三个微服务的端口分别为:33696、33697、33696
        3、修改三个微服务/api/values接口默认返回值,可以比较明显的区分出三个微服务接口,另外两个微服务的返回值分别是:微服务2、微服务3
        二、创建网关
       1、新建一个网关项目 OcelotGateway
       2、在解决方案Nuget程序包安装Ocelot最新版
       3、在根目录添加配置文件 Ocelot.json
      我们设置的是RoundRobin,Ocelot会对三个微服务轮流发送请求
      4、修改Program.cs文件,在CreateWebHostBuilder方法里添加如下代码,引入Ocelot.Json
      5、修改StartUp.cs文件,在请求管道内添加Ocelot,一定要注意:要放在AddMvc()和UserMvc()方法的上面,否则的话网关不会生效。
      三、运行
      1、先运行三个微服务,可以看到三个微服务分别返回了不同的值,可以在解决方案的属性页设置三个项目同时启动,三个微服务项目的返回结果
      2、运行网关项目  运行以后,刷新,因为我们设置的是RoundRobin,Ocelot就会分别轮询地返回了三个接口的结果

      东八区成立于二十一世纪初,是中国品牌推广和设计行业崛起的时代。多年来,东八区为不同行业、领域的知名企业进行了品牌重塑、网络建设、视频服务与活动策划等,东八区深信唯有不断学习、沉淀、探索、创新,方能给我们的客户交一份满意的答卷。