Ocelot 框架是基于.NET 开发的 API 网关,API网关是系统内部服务暴露在外部的一个访问入口,类似于代理服务器,就像一个公司的门卫承担着寻址、限制进入、安全检查、位置引导等工作,我们可以形象的用下图来表示: 外部设备需要访问内部系统服务时必须要通过我们的 PI Gateway,目的是为了隔离内部服务和外部访问来做统一的认证授权,限流熔断,请求聚合,负载均衡,日志记录,监控预警等 通用功能,就像是我们系统的防火墙一样,在任何外部请求访问系统时都必须经过防火墙的验证。
API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能,通常,网关也是提供基于 REST 风格 API 访问,服务端通过 API-GW 注册和管理服务。
Ocelot的目标是使用.NET运行微服务和面向服务架构,我们需要一个统一的入口进入我们的服务,提供监控、鉴权、负载均衡等机制,也可以通过编写中间件的形式,来扩展Ocelot的功能,Ocelot是一堆特定顺序的中间件。Ocelot框架内部集成了IdentityServer和Consul(服务注册发现),还引入了Polly来处理进行故障处理。
如需进一步学习 Ocelot 网关框架,可参阅以下高质量博客:
.NET Core 微服务之基于 Ocelot 实现 API 网关服务(上)
.NET Core 微服务之基于 Ocelot 实现 API 网关服务(下)
.NET Core 2.0 Ocelot API 网关教程(1)-入门
.NET Core 2.0 Ocelot API 网关教程(2)-路由
.NET Core 2.0 Ocelot API 网关教程(3)-路由聚合
.NET Core 2.0 Ocelot API 网关教程(4)-服务发现
.NET Core 2.0 Ocelot API 网关教程(5)-认证和授权
.NET Core 微服务之基于 Ocelot 实现 API 网关服务