幸福和富有的过一生

幸福和富有的过一生!


  • 首页

  • 归档

  • 关于我

  • 公益404

  • 搜索

APISIX的Plugin介绍

时间: 2022-03-18 分类: apisix   cloudnative   字数: 771 字 阅读: 2分钟 阅读次数:

插件机制

APISIX通过插件(Plugin)机制来丰富其功能,目前通过lua实现了8大类插件,还通过sidecar模式支持多语言插件。

Plugin配置可直接绑定在Route上,也可以被绑定在Service或Consumer上。 而对于同一个插件的配置,只能有一份是有效的,配置选择优先级总是Consumer > Route > Service。

一个插件在一次请求中只会执行一次,即使被同时绑定到多个不同对象中(比如Route或Service)。 插件运行先后顺序是根据插件自身的优先级(priority)来决定的。

插件热加载

APISIX的插件是热加载的,不管你是新增、删除还是修改插件,都不需要重启服务。

只需要通过admin API发送一个HTTP请求即可:

curl http://127.0.0.1:9080/apisix/admin/plugins/reload -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT

路由加入插件

路由(route)接口中加入plugins关键字后支持插件,limit-count、prometheus都是引用的插件名称。

curl "http://127.0.0.1:9080/apisix/admin/routes" -H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" -X POST -d '{
    "methods": ["GET"],
    "host": "test.my.com",
    "uri": "/mypath03/plugin",
    "plugins": {
        "limit-count": {
            "count": 2,
            "time_window": 60,
            "rejected_code": 503,
            "key": "remote_addr"
        },
        "prometheus": {}
    },
    "upstream_id": "00000000000000000122"
}'

多语言的外部插件

APISIX通过Sidecar的方式加载和运行多语言开发的插件。这里的Sidecar就是Plugin Runner,多语言开发的插件叫做External Plugin。 如果APISIX中配置了一个Plugin Runner,APISIX将以子进程的方式运行该Plugin Runner。 该子进程与APISIX进程从属相同用户。当重启或者重新加载APISIX时,该Plugin Runner也将被重启。 请求将触发从APISIX到Plugin Runner的RPC调用。 目前支持go、python、java、javascript语言开发插件。 01

Lua插件开发

如果社区的插件不能满足需求,APISIX也支持自助开发插件。Lua插件规范

引用

  1. apisix plugin

  2. apisix plugin列表

  3. apisix 外部插件

  4. apisix lua插件开发

  5. apisix admin API

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

标题:APISIX的Plugin介绍

链接:/post/apisix-plugin/

作者:lizj3624

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

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

微信打赏

Alipay

支付宝打赏

拼多多2021Q4及全年财报
APISIX快速入门
  • 文章目录
  • 站点概览
lizj3624

lizj3624

幸福和富有的过一生!

93 日志
90 分类
107 标签
GitHub 知乎
标签云
  • Cloudnative 13
  • 财报 11
  • Kubernetes 10
  • Nginx 9
  • Apisix 7
  • 美股 6
  • Video 5
  • 宏观经济 5
  • 投资 5
  • Linux 4
  • 插件机制
  • 插件热加载
  • 路由加入插件
  • 多语言的外部插件
  • Lua插件开发
  • 引用
© 2010 - 2024 幸福和富有的过一生
Powered by - Hugo v0.124.1 / Theme by - NexT
/
Storage by /
0%