一.入门概述
从这篇开始探讨Ocelot,Ocelot是一个.NET API网关,仅适用于.NET Core,用于.NET面向微服务/服务的架构中。当客户端(web站点、ios、 app 等)访问web api时,需要先统一入口点进入Ocelot网关(Ocelot可以做很多事情例如路由,身份验证,服务发现,日志记录等,下面列出了功能基本),再由Ocelot分发到web api。Ocelot官方希望IS4一起使用,实现令牌轻松集成。
Ocelot是一组按特定顺序排列的中间件,查看源码会发现Ocelot是一堆的middleware组成的一个管道。
Ocelot操控HttpRequest对象到其配置指定的状态,在中间件中Ocelot创建一个HttpRequestMessage对象,该对象用于向下游服务(wep api)发出请求。发出请求的中间件是Ocelot管道中的最后一件事。它不会调用下一个中间件。
当下游服务response返回Ocelot管道时,将检索下游服务的响应。有一个中间件将HttpResponseMessage映射到HttpResponse对象并返回给客户端。
通过官方部署架构图介绍,可以了解到:Ocelot有5种部署方式包括:
(1) Ocelot基本实现
(2) Ocelot结合IS4、
(3) Ocelot多个实现(高可用,负载)
(4) Ocelot结合Consul(健康检查,服务注册)、
(5) Ocelot结合Service Fabric。
查看部署架构图,在架构图中,Ocelot网关暴露在广域网的一个访问入口,供客户端调用。而web api是在局域网中,由Ocelot来转发。
Ocelot的功能基本包括:
路由
请求聚合
Consul和Eureka的服务发现
Service Fabric
WebSockets
Authentication认证
Authorisation授权
限速
高速缓存
重试策略/ QoS
负载均衡
日志/跟踪/关联
标头/查询字符串/声明转换
自定义中间件/委托处理程序
配置/管理REST API
Platform / Cloud Agnostic
安装Nuget包
Install-Package Ocelot
二.Ocelot 基础项目演示
下面通过贡献者的开源项目来学习Oc