.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程

什么是Ocelot

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

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

 

搭建一个Ocelot项目

一、创建微服务

1、新建三个Webapi项目

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第1张图片

2、修改三个微服务的端口分别为:33696、33697、33696

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第2张图片

 

3、修改三个微服务/api/values接口默认返回值,可以比较明显的区分出三个微服务接口

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第3张图片

 

另外两个微服务的返回值分别是:微服务2、微服务3

 

二、创建网关

1、新建一个网关项目 OcelotGateway

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第4张图片

 

2、在解决方案Nuget程序包安装Ocelot最新版

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第5张图片

 

3、在根目录添加配置文件 Ocelot.json

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第6张图片

 

内容如下:

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第7张图片

 

我们设置的是RoundRobin,Ocelot会对三个微服务轮流发送请求

 

4、修改Program.cs文件,在CreateWebHostBuilder方法里添加如下代码,引入Ocelot.Json

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第8张图片

5、修改StartUp.cs文件,在请求管道内添加Ocelot,一定要注意:要放在AddMvc()和UserMvc()方法的上面,否则的话网关不会生效。

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第9张图片

 

三、运行

1、先运行三个微服务,可以看到三个微服务分别返回了不同的值

可以在解决方案的属性页设置三个项目同时启动

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第10张图片

三个微服务项目的返回结果

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第11张图片

 

2、单独运行网关项目

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第12张图片

 

运行以后,因为我们设置的负载均衡算法是RoundRobin,刷新网页以后,Ocelot就会分别轮询地返回了三个接口的结果

 

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第13张图片

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第14张图片

.Net Core 微服务(一) 开源API网关Ocelot 最简单的入门教程_第15张图片

至此,一个基于.Net Core的开源API网关Ocelot示例就完成了。

你可能感兴趣的:(.Net,Core,微服务)