幸福和富有的过一生

幸福和富有的过一生!


  • 首页

  • 归档

  • 关于我

  • 公益404

  • 搜索

云原生API网关APISIX简介

时间: 2022-03-06 分类: apisix   cloudnative   字数: 1021 字 阅读: 3分钟 阅读次数:

缘起

APISIX是国内在github开源社区比较活跃的云原生API网关,目前(2022-03-06)github star 8.6k,fork 1.6k。APISIX底层是基于Nginx和OpenResty, 我本人在工作中也是经常用到Nginx和OpenResty,因此对这个项目比较感兴趣,最近开始研究它,先了解它的架构以及一些概念。

架构

APISIX最底层是基于Nginx,再上一次层是OpenResty,再上一次层是ngx_lua开发的APISIX core,再上一层是APISIX Plugin Runtime(插件运行时), 最上层是APISIX的插件,它还支持多语言(go, java等)的插件。 01

插件化是APISIX架构设计很不错的地方,可以使APISIX易扩展,集成了大量丰富的插件,通过rpc的方式支持多语言插件。插件请求的很多阶段被调用。 02

一些概念

Route路由

route路由是请求进入APISIX后,根据一定匹配规则,将请求流量转发到指定upstream或者service。

如果router配置upstream和service时,优先使用upstream
路由包含三部分:

  • 匹配规则(比如: uri, host, remote_addr)
  • 插件匹配(比如: 限流插件)
  • upstream上游信息

Plugin插件

Plugin是请求/响应过程中执行的插件配置。Plugin配置可直接绑定在Route上,也可以被绑定在Service或Consumer上。 而对于同一个插件的配置,只能有一份是有效的,配置选择优先级总是Consumer > Route > Service。 一个插件在一次请求中只会执行一次,即使被同时绑定到多个不同对象中(比如Route或Service)

Service服务

Service是某类服务的抽象,是有Plugin和upstream组成的一组服务,Plugin可以选的,它通常与上游upstream服务抽象是一一对应的。 Route与Service之间,通常是N:1的关系。

Consumer消费者

Consumer是某类服务的消费者,需与用户认证体系配合才能使用。 比如不同的Consumer请求同一个API, 网关服务根据当前请求用户信息,对应不同的Plugin或Upstream配置。

Upstream上游

Upstream是虚拟主机抽象,对给定的多个服务节点按照配置规则进行负载均衡。Upstream的地址信息可以直接配置到Route(或Service) 上, 当Upstream有重复时,就需要用“引用”方式避免重复了。

#apisix# #cloudnative#
QQ扫一扫交流

标题:云原生API网关APISIX简介

链接:/post/apisix-primer/

作者:lizj3624

声明: 本博客文章除特别声明外,均采用 CC BY-NC-SA 3.0许可协议,转载请注明出处!

创作实属不易,如有帮助,那就打赏博主些许茶钱吧 ^_^
WeChat Pay

微信打赏

Alipay

支付宝打赏

Grab 2021Q4以及全年财报
独立开发者
  • 文章目录
  • 站点概览
lizj3624

lizj3624

幸福和富有的过一生!

93 日志
90 分类
107 标签
GitHub 知乎
标签云
  • Cloudnative 13
  • 财报 11
  • Kubernetes 10
  • Nginx 9
  • Apisix 7
  • 美股 6
  • Video 5
  • 宏观经济 5
  • 投资 5
  • Linux 4
  • 缘起
  • 架构
  • 一些概念
    • Route路由
    • Plugin插件
    • Service服务
    • Consumer消费者
    • Upstream上游
© 2010 - 2024 幸福和富有的过一生
Powered by - Hugo v0.124.1 / Theme by - NexT
/
Storage by /
0%