亲宝软件园·资讯

展开

.Net微服务实践(二):Ocelot介绍和快速开始

lcyhjx 人气:0
[TOC] 上篇[.Net微服务实践(一):微服务框架选型](https://www.cnblogs.com/lcyhjx/p/12641840.html) 我们对微服务框架整体做了介绍,接下来我们从网关Ocelot开始,一一开始实践 # 介绍 Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:**路由、请求聚合、服务发现、认证、鉴权、限流熔断**、并内置了**负载均衡器**与Service Fabric、Butterfly、Tracing集成。这些功能只都只需要简单的配置即可完成,下面我们会对这些功能的配置一一进行说明。 # 基本原理 简单的来说Ocelot是一堆的asp.net core middleware组成的一个管道。当它拿到请求之后会用一个request builder来构造一个HttpRequestMessage发到下游的真实服务器,等下游的服务返回response之后再由一个middleware将它返回的HttpResponseMessage映射到HttpResponse对象并返回给客户端。 # 集成方式 **基本集成** ![](https://img2020.cnblogs.com/blog/60140/202004/60140-20200406215308883-1231313184.png) 用一台web service来host Ocelot,在这里有一个json配置文件,里面设置了所有对当前这个网关的配置。它会接收所有的客户端请求,并路由到对应的下游服务器进行处理,再将请求结果返回。而这个上下游请求的对应关系也被称之为路由。 **集成IdentityServer** ![](https://img2020.cnblogs.com/blog/60140/202004/60140-20200406215342919-1154296130.png) 当我们涉及到认证和鉴权的时候,我们可以跟Identity Server进行结合。当网关需要请求认证信息的时候会与Identity Server服务器进行交互来完成。 **网关集群** ![](https://img2020.cnblogs.com/blog/60140/202004/60140-20200406215421852-925590767.png) 只有一个网关是很危险的,也就是我们通常所讲的单点,只要它挂了,所有的服务全挂。这显然无法达到高可用,所以我们也可以部署多台Ocelot网关。当然这个时候在多台网关前,你还需要一台负载均衡器 **Consul服务发现** ![](https://img2020.cnblogs.com/blog/60140/202004/60140-20200406215443995-153305523.png) 在Ocelot已经支持简单的负载功能,也就是当下游服务存在多个结点的时候,Ocelot能够承担起负载均衡的作用。但是它不提供健康检查,服务的注册也只能通过手动在配置文件里面添加完成。这不够灵活并且在一定程度下会有风险。这个时候我们就可以用Consul来做服务发现,它能与Ocelot完美结合。 **集成Service Fabric** ![](https://img2020.cnblogs.com/blog/60140/202004/60140-20200406215503756-9933394.png) # 快速开始 ## 创建订单服务 - 新建一个新建asp.net core web api项目,命名为order-api, 模拟订单服务 - 在order-api项目中,添加一个order api ``` [ApiController] public class OrderController : ControllerBase { // GET: api/Product [Route("api/orders")] [HttpGet] public IEnumerable

加载全部内容

相关教程
猜你喜欢
用户评论