Ocelot简易教程(一)之Ocelot是什么
原文:Ocelot简易教程(一)之Ocelot是什么

作者:依乐祝
原文地址:https://www.cnblogs.com/yilezhu/p/9557375.html

Ocelot简易教程目录

  1. Ocelot简易教程(一)之Ocelot是什么
  2. Ocelot简易教程(二)之快速开始1
  3. Ocelot简易教程(二)之快速开始2
  4. Ocelot简易教程(三)之主要特性及路由详解
  5. Ocelot简易教程(四)之请求聚合以及服务发现
  6. Ocelot简易教程(五)之集成IdentityServer认证以及授权
  7. Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据
  8. Ocelot简易教程(七)之配置文件数据库存储插件源码解析
    简单的说Ocelot是一个用.NET Core实现并且开源的API网关技术。
    可能你又要问了,什么是API网关技术呢?Ocelot又有什么特别呢?我们又该如何集成到我们的asp.net core程序中呢?
    下面我会通过一些列通俗易懂的教程来为大家讲解。今天的这篇文档先给大家简述下什么是API网关技术,以及Ocelot是什么,一个Ocelot的整体架构。

    API网关是什么?

    API网关是系统暴露在外部的一个访问入口。就像一个公司的门卫承担着寻址、限制进入、安全检查、位置引导、等等功能。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理等等。
    API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。

    Ocelot在API网关实现上有什么优点呢?

    首先,上面已经讲述了Ocelot是一个用.NET Core技术实现并且开源的API网关技术。除此之外还有什么优点呢?那就是它强大的功能以及使用上的简单了。它的功能包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器、Service Fabric、Skywalking等的集成。而且这些功能都只需要简单的配置即可完成。
    目前,腾讯和微软是Ocelot在官网贴出来的客户。
    另外,附上Ocelot的开源地址:https://github.com/ThreeMammals/Ocelot

    Ocelot工作流程是怎样的呢?

    实际上Ocelot就是一系列按特定顺序排列的中间件。
    Ocelot首先通过配置将HttpRequest对象保存到一个指定的状态直到它到达用来创建HttpRequestMessage对象并将创建的HttpRequestMessage对象发送到下游服务中的请求构造中间件。通过中间件来发出请求是Ocelot管道中做的最后一件事。它不会再调用下一个中间件。下游服务的响应会存储在每个请求 scoped repository中,并作为一个请求返回到Ocelot管道中。有一个中间件将HttpResponseMessage映射到HttpResponse对象并返回给客户端。
    接下来是你使用Ocelot是可能会使用的配置。

    基本集成

用一台web service来host Ocelot,在这里有一个json配置文件,里面设置了所有对当前这个网关的配置。它会接收所有的客户端请求,并路由到对应的下游服务器进行处理,再将请求结果返回。而这个上下游请求的对应关系也被称之为路由。

集成 IdentityServer

当我们涉及到认证和鉴权的时候,我们可以跟Identity Server进行结合。当网关需要请求认证信息的时候会与Identity Server服务器进行交互来完成。

网关集群配置

只有一个网关是很危险的,也就是我们通常所讲的单点,只要它挂了,所有的服务全挂。这显然无法达到高可用,所以我们也可以部署多台Ocelot网关。当然这个时候在多台网关前,你还需要一台负载均衡器。

结合Consul服务发现

在Ocelot已经支持简单的负载功能,也就是当下游服务存在多个结点的时候,Ocelot能够承担起负载均衡的作用。但是它不提供健康检查,服务的注册也只能通过手动在配置文件里面添加完成。这不够灵活并且在一定程度下会有风险。这个时候我们就可以用Consul来做服务发现,它能与Ocelot完美结合。

结合Service Fabric

总结

本文首先介绍了API网关的概念,进而引出asp.net core中的一个开源的API网关技术Ocelot。并介绍了Ocelot的优点以及工作原理及架构图。接下来会详细介绍Ocelot如何通过简单地配置实现路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器、Service Fabric、Skywalking等等功能。

posted on 2018-12-21 00:20 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10153436.html

Ocelot简易教程(一)之Ocelot是什么相关推荐

  1. Ocelot简易教程(六)之重写配置文件存储方式并优化响应数据

    本来这篇文章在昨天晚上就能发布的,悲剧的是写了两三千字的文章居然没保存,结果我懵逼了.今天重新来写这篇文章.今天我们就一起来探讨下如何重写Ocelot配置文件的存储方式以及获取方式. 作者:依乐祝 原 ...

  2. Ocelot简易教程(五)之集成IdentityServer认证以及授权

    最近比较懒(编者注:作者不是真懒,而是在憋大招,他最近实现了把Ocelot的配置使用数据库存储),所以隔了N天才来继续更新第五篇Ocelot简易教程,本篇教程会先简单介绍下官方文档记录的内容然后在前几 ...

  3. Ocelot简易教程(四)之请求聚合以及服务发现

    上篇文章给大家讲解了Ocelot的一些特性并对路由进行了详细的介绍,今天呢就大家一起来学习下Ocelot的请求聚合以及服务发现功能.希望能对大家有所帮助. 作者:依乐祝 原文地址:https://ww ...

  4. Ocelot简易教程(三)之主要特性及路由详解

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9664977.html 上篇<Ocelot简易教程(二)之快速开始2>教大家如何快速跑起来一个 ...

  5. Ocelot简易教程(二)之快速开始2

    为什么这篇的标题叫"Ocelot简易教程(二)之快速开始2"呢,因为很多朋友跟我说上一篇" Ocelot简易教程(二)之快速开始1"内容太少了,只是简单介绍Oc ...

  6. Ocelot简易教程(二)之快速开始1

    Ocelot是为.net core量身定做的,目前是基于 netstandard2.0进行构建的. .NET Core 2.1中如何使用呢? 安装NuGet package 使用nuget安装Ocel ...

  7. Ocelot简易教程(七)之配置文件数据库存储插件源码解析

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9852711.html 上篇文章给大家分享了如何集成我写的一个Ocelot扩展插件把Ocelot的配置存储 ...

  8. Ocelot简易教程

    https://www.cnblogs.com/yilezhu/p/9557375.html https://www.cnblogs.com/shanyou/p/10363360.html

  9. qmake 简易教程

    qmake 简易教程 qmake是Qt开发中默认的构建工具. posted on 2018-05-27 00:09 JichengTang 阅读(...) 评论(...) 编辑 收藏 转载于:http ...

最新文章

  1. Java高并发和多线程系列 - 1. 线程基本概念
  2. AWS自动化合规slide
  3. 树莓派slam_SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——6.树莓派USB与tty串口号绑定...
  4. 这个云原生开发的痛点你遇到了吗?
  5. SAP Commerce的extensioninfo.xml
  6. 浅谈微信小程序生命周期
  7. SpringBoot 中的事务处理 @Transactional
  8. 《面向对象程序设计》课程作业 (三)
  9. 性能测试:基础(4)
  10. 学JAVA第十三天,方法、方法重载及构造函数
  11. 性能计数器驱动_Linux CPU性能优化方法
  12. 谷歌搜索363搜索引擎入口_SEO谷歌搜索引擎优化到底有啥好?
  13. 创建maven的web项目,并用jetty调试
  14. 魏兴华_ORACLE优化器革命漫谈
  15. Choerodon猪齿鱼实践之角色管理
  16. 爬取图片,并按比例划分数据集
  17. 这5个奇妙的Python库,你必须要试试,学python咱就是玩,欸~
  18. Backtrader(十二)- 订单 Order -buy、sell、close
  19. IBM WebSphere Application Server与IBM Java V8官方帮助文档资源汇总
  20. Nagios 监控网络设备

热门文章

  1. html读取字典endfor,Flask和HTML,从python字典迭代到HTML表
  2. 风电功率预测matlab,一种基于二十四节气的风电功率预测方法与流程
  3. 原生js实现对象的深拷贝及循环引用
  4. 珠海网络推广浅析网站优化面对搜索引擎算法更新怎样才能应对自如?
  5. 武汉网络推广浅析当网站停止收录时该检查哪些问题?
  6. 深圳网络推广提醒大家做好URL标准化,网站排名“事半功倍”!
  7. 网络营销外包下字节跳动如此优秀私有市场估值远超拼多多与京东
  8. 企业网络推广专员浅析如何完善网站维护企业网络推广吸引用户浏览
  9. 电脑换ip软件_为什么会有企业需要软件换IP?
  10. linux命令匹配path顺序,PATH 中的路径先后顺序的问题