摘要: 随着微服务的大范围应用,服务发现这个词也变的越来越火热。下面这篇文章,就会对服务发现这个概念进行介绍,介绍主要包含三部分,服务发现的定义,服务发现的模式以及目前比较成熟的服务发现应用。 服务发现是什么?其实,我们日常的很多普通操作,都是在做服务发现。 如上图所示,这是一个在浏览器输入域名,然后获取网 阅读全文
posted @ 2019-10-23 16:12 心冰之海 阅读(331) 评论(0) 推荐(0) 编辑
摘要: Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成,下面我们会对这些功能的配置一一进行说明。 阅读全文
posted @ 2019-10-23 10:53 心冰之海 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 本文介绍Ocelot中的请求头传递(Headers Transformation),其可以改变上游request传递给下游/下游response传递给上游的header。 1、修改ValuesController 修改WebApiA和WebApiB中ValuesController.Get()方法如 阅读全文
posted @ 2019-10-23 10:38 心冰之海 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 本文介绍Ocelot中的QoS(Quality of Service),其使用了Polly对超时等请求下游失败等情况进行熔断。 1、添加Nuget包 添加 Ocelot.Provider.Polly 到OcelotGetway项目中 nuget.png nuget.png 2、修改 Startup. 阅读全文
posted @ 2019-10-23 10:37 心冰之海 阅读(297) 评论(0) 推荐(0) 编辑
摘要: Ocelot中使用 CacheManager 来支持缓存,官方文档中强烈建议使用该包作为缓存工具。以下介绍通过使用CacheManager来实现Ocelot缓存。 1、通过Nuget添加 Ocelot.Cache.CacheManager 包 在OcelotGetway项目中添加引用: Add ca 阅读全文
posted @ 2019-10-23 10:36 心冰之海 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 本文介绍Ocelot中的限流,限流允许Api网关控制一段时间内特定api的总访问次数。限流的使用非常简单,只需要添加配置即可。 1、添加限流 修改 configuration.json 配置文件,对 UpstreamPathTemplate 为 /webapib/values 的配置修改如下: 对  阅读全文
posted @ 2019-10-23 10:35 心冰之海 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 本文介绍Ocelot中的配置管理,配置管理允许在Api网关运行时动态通过Http Api查看/修改当前配置。由于该功能权限很高,所以需要授权才能进行相关操作。有两种方式来认证,外部Identity Server或内部Identity Server。 1、外部Identity Server 修改 St 阅读全文
posted @ 2019-10-23 10:33 心冰之海 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 本文介绍Ocelot中的认证和授权(通过IdentityServer4),本文只使用最简单的IdentityServer,不会对IdentityServer4进行过多讲解。 1、Identity Server 4 (1)新建一个新的WebApi项目命名为IdentityServer,添加 Ident 阅读全文
posted @ 2019-10-23 10:27 心冰之海 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 本文介绍Ocelot中的服务发现(Service Discovery),Ocelot允许指定一个服务发现提供器,之后将从中寻找下游服务的host和port来进行请求路由。关于服务发现的详细介绍请点击。在Ocelot中使用了Consul作为服务发现的provider。 1、Consul下载安装 从官方 阅读全文
posted @ 2019-10-23 10:26 心冰之海 阅读(511) 评论(0) 推荐(0) 编辑
摘要: 在实际的应用当中,经常会遇到同一个操作要请求多个api来执行。这里先假设一个应用场景:通过姓名获取一个人的个人信息(性别、年龄),而获取每种个人信息都要调用不同的api,难道要依次调用吗?在Ocelot中为我们提供了很好的解决方法。 路由聚合 继续使用前边的文章建立的项目,在WebApiA项目中添加 阅读全文
posted @ 2019-10-23 10:23 心冰之海 阅读(350) 评论(0) 推荐(0) 编辑
摘要: .Netcore 2.0 Ocelot Api网关教程(1) 路由介绍 上一篇文章搭建了一个简单的Api网关,可以实现简单的Api路由,本文介绍一下路由,即配置文件中ReRoutes,ReRoutes是Ocelot配置文件中最重要的部分,实现了由上游到下游的路由转发。 上一篇文章中使用的config 阅读全文
posted @ 2019-10-23 10:22 心冰之海 阅读(430) 评论(0) 推荐(0) 编辑
摘要: Ocelot(Github)Ocelot官方文档(英文)本文不会介绍Api网关是什么以及Ocelot能干什么需要对Api网关及Ocelot有一定的理论了解 开始使用Ocelot搭建一个入门级Api网关 1.新建3个WebApi项目,分别命名为OcelotGetway、WebApiA、WebApiB 阅读全文
posted @ 2019-10-23 10:21 心冰之海 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 一、啥是API网关? API 网关一般放到微服务的最前端,并且要让API 网关变成由应用所发起的每个请求的入口。这样就可以明显的简化客户端实现和微服务应用程序之间的沟通方式。以前的话,客户端不得不去请求微服务A(假设为Customers),然后再到微服务B(假设为Orders),然后是微服务C(假设 阅读全文
posted @ 2019-10-23 10:05 心冰之海 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Android, IOS 以及第三方应用程序调用。 但是在UI上进行 阅读全文
posted @ 2019-10-23 10:00 心冰之海 阅读(1266) 评论(0) 推荐(0) 编辑