.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项目

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就会分别轮询地返回了三个接口的结果

 

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值