前言:

  最近在关注微服务,在 eShop On Containers 项目中存在一个API网关项目,引起想深入了解下它的兴趣。

   

一、API网关是什么

  API网关是微服务架构中的唯一入口,它提供一个单独且统一的API入口用于访问内部一个或多个API。它可以具有身份验证,监控,负载均衡,缓存,请求分片与管理,静态响应处理等。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。

二、Ocelot简介

  Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成

三、Ocelot工作流程

  a)  基本集成:

     根据configuration.json(后续文章会介绍详细内容)中配置内容,把接收所有的客户端请求,路由到对应的下游服务器进行处理,再将请求结果返回。而这个上下游请求的对应关系也被称之为路由。

 

b)  集成IdentityServer:

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

  

  c)  网关集群配置:

    可以部署多台Ocelot网关。当然这个时候在多台网关前,你还需要一台负载均衡器

    

  

  d)  结合Consul服务发现

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

    

  e)  结合Service Fabric

    

    

下一步:  

  接下来我们就一起来应用Ocelot实现路由、权限认证、服务发现、负载均衡等等相关功能。在代码中进一步深入了解。

    • 包括如何配置路由
    • 授权认证服务接入
    • 负载均衡使用
    • 服务发现结合
    • ……

引用:

  官方文档:https://ocelot.readthedocs.io/en/latest/introduction/bigpicture.html

最新文章

  1. Scrapy开发指南
  2. Linux C相关基础
  3. POJ3764 The xor-longest Path
  4. UML类图五种关系与代码的对应关系
  5. 郝文菲get技能的经验--20155308
  6. Maven实战(三)Eclipse构建Maven项目
  7. Could not resolve this reference. Could not locate the assembly
  8. VMware Workstation 10安装Centos6.4操作步骤说明
  9. HDU 1142 A Walk Through the Forest (求最短路条数)
  10. AWK详细用法
  11. 四大类NoSQL数据库
  12. JDBC基础学习(三)—处理BLOB类型数据
  13. Linux系列教程(十三)——Linux软件包管理之源码包、脚本安装包
  14. TestLink和RedMine的集成
  15. Java系列2 --- 你真的知道Java的String对象么?
  16. TMS 控件测试
  17. day9.初始函数练习题
  18. scala面向对象.高阶函数,柯里化,Actor编程简介
  19. 脱壳系列—— 揭开so section加密的美丽外衣
  20. Elasticsearch教程-从入门到精通(转)

热门文章

  1. mysql explain的extra
  2. macos的两个快捷键和一个小tip
  3. 03.DRF-设计方法
  4. 一文梳理JavaScript 事件循环(Event Loop)
  5. cc21a -c++重载成员操作符*,->,代码示范
  6. MFC vc++严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3646 “m_SockClient”: 未知重写说明符
  7. C常见错误小记(未完)
  8. Nginx具体配置(三)
  9. Tensorflow2 自定义数据集图片完成图片分类任务
  10. Project Loom:Reactive模型和协程进行时(翻译)