这个框架的整体思路其实就是Redirect请求并且附带一个简易的负载均衡机制,完全搭建MVC Core项目下
在Ocelot项目启动的时候需要配置所有的ReRoute集合,这里的每一个ReRoute可以看做一个Map类,对应着一个客户端访问的代理Url同最终Host真正服务的地址的映射关系
Ocelot项目作为一个Hub接受所有来之客户端的请求,通过解析请求的Url来匹配到一个唯一的ReRoute实例,,这里实例里面除了配置真正的服务地址(downStreamUrl)外还有一个
loadBancer的数据项,这里的负载均衡实现是很简单的,在loadBancer中有一个字典数据,key为HostAndPort,Value为当前这个服务器的Connection连接数,连接数最少的就是下面downSteam访问的服务器
Ocelot项目使用IdentityServer4作为用户认证机制,当客户端的请求筛选出唯一的ReRoute之后会判断其中配置的IsAuthenticated参数来决定访问downstreamUrl是否需要权限验证
这个框架大概是四个多月前学习的,可能目前重构的比较厉害
(纯粹是为了下个月找工作而准备的一系列博文,每一篇都尽量精简,并非给初学者看的?)
API网关-Ocelot概述