简介
Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成。
架构图
Ocelot的目标是使用.NET运行面向微服务/服务的架构,能有统一的入口点进入他们的系统。
特别是它很容易就可以集成IdentityServer和 bearer tokens。
Ocelot是一组按特定顺序排列的中间件。
Ocelot将HttpRequest对象操作到其配置指定的状态,直到它到达请求构建器中间件,在该中间件中,它创建一个HttpRequestMessage对象,该对象用于向下游服务发出请求。发出请求的中间件是Ocelot管道中的最后一件事。它不会调用下一个中间件。来自下游服务的响应存储在每个请求范围的存储库中,并在请求返回Ocelot管道时进行检索。有一个中间件将HttpResponseMessage映射到HttpResponse对象并返回给客户端。基本上它具有许多其他功能。
以下是部署Ocelot时使用的配置。
基本实现
![../_images/OcelotBasic.jpg](https://i-blog.csdnimg.cn/blog_migrate/a1df66df3f40353f613ad67896b1e6e7.jpeg)
集成IdentityServer
![../_images/OcelotIndentityServer.jpg](https://i-blog.csdnimg.cn/blog_migrate/b8499a7327723cd130a11734ed13e386.jpeg)
多个实例
![../_images/OcelotMultipleInstances.jpg](https://i-blog.csdnimg.cn/blog_migrate/c71f1e15d2ae8078c00f247cce01759f.jpeg)
使用Consul
![../_images/OcelotMultipleInstancesConsul.jpg](https://i-blog.csdnimg.cn/blog_migrate/9918a356d54989b6299ea1ff1bba0704.jpeg)
使用Service Fabric
![../_images/OcelotServiceFabric.jpg](https://i-blog.csdnimg.cn/blog_migrate/ae7b0b5991ac9c71242e9350645716c5.jpeg)