关于apisix:Apache-APISIX-2110-正式发布蓄力两月带来更多新功能

35次阅读

共计 3106 个字符,预计需要花费 8 分钟才能阅读完成。

Apache APISIX 2.11.0 版本是继上次 2.10.0 LTS 版本公布后,第一个带有新性能的版本。不仅丰盛了插件库,还带来了陈腐的生态反对。具体性能详情大家能够下划查看哦。

新性能:新增基于 LDAP 的认证插件

Apache APISIX 长长的认证插件名单上又增加了新成员——基于 LDAP 的 ldap-auth 插件。通过该插件咱们能够买通 LDAP 的账户体系和 Apache APISIX 的 Consumer 机制。

咱们通过代码端简略进行示例展现:

curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"username":"user01","plugins": {"ldap-auth": {"user_dn":"cn=user01,ou=users,dc=example,dc=org"}
    }
}'
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"methods": ["GET"],"uri":"/hello","plugins": {"ldap-auth": {"base_dn":"ou=users,dc=example,dc=org","ldap_uri":"localhost:1389","uid":"cn"},
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {"127.0.0.1:1980": 1}
    }
}'

在上述配置中,咱们把 user01 绑定到 route 1 上。这样咱们在拜访 route 1 时就带上了 user01 的明码,就能够通过 LDAP 的身份认证了。

运行后果就像这样:

$ curl -i -uuser01:password1 http://127.0.0.1:9080/hello
HTTP/1.1 200 OK
...
hello, world

新性能:可观测性层面对接更多监控体系

新版本的 Apache APISIX 丰盛了对外部监控服务的反对。在这方面,咱们新增了两个插件:

  • 上报指标到 datadog 的 datadog 插件
  • 上报拜访日志到 Apache Skywalking 的 skywalking-logger 插件

Datadog 是海内宽泛应用的 SaaS 监控服务,而 Apache Skywalking 是享誉寰球的开源监控软件。现在用户只需在路由上简略配置一下,就能实现与它们的对接。

Datadog 示例:

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"plugins": {"datadog": {}
       },
      "upstream": {
           "type": "roundrobin",
           "nodes": {"127.0.0.1:1980": 1}
      },
      "uri": "/hello"
}'

Apache SkyWalking 示例:

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"plugins": {"skywalking-logger": {"endpoint_addr":"http://127.0.0.1:12800"}
       },
      "upstream": {
           "type": "roundrobin",
           "nodes": {"127.0.0.1:1980": 1}
      },
      "uri": "/hello"
}'

新性能:通过网关裸露 Azure 的 FaaS 函数

网关能做的不仅仅是代理外部服务,咱们也能够用它来连贯内部的零碎。

当初通过 azure-functions 插件,就能够利用 HTTP 申请触发 Azure functions 服务上的函数了。

接下来咱们将通过下方示例来展现如何把 Azure 上配置好的函数,跟 Apache APISIX 上 /azure_HttpTrigger 路由连接起来。

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"plugins": {"azure-functions": {"function_uri":"http://test-apisix.azurewebsites.net/api/HttpTrigger","authorization": {"apikey":"<Generated API key to access the Azure-Function>"}
        }
    },
    "uri": "/azure_HttpTrigger"
}'

对该路由的拜访,等价于对 FaaS 平台上的函数调用。与此同时,咱们也能够在此过程中退出鉴权、限流等对应的限度。

新性能:提供 WASM 相干反对

目前 Apache APISIX 已开始提供对 WASM 的初步反对。凭借 Proxy WASM SDK,咱们能够采纳 Lua 以外的语言,编写运行在 Apache APISIX 外部的插件。

有别于之前的内部插件性能,这一机制是运行在 Apache APISIX 外部的,所以在性能上相比之前会更加杰出。

在 Apache APISIX 里应用 WASM 插件,就像采纳 Lua 插件一样,两者都反对在路由和全局范畴上失效。咱们在 Apache APISIX 代码仓库里搁置了一个基于 WASM 实现的 fault-injection 插件,感兴趣的读者能够看一下它跟 Lua 版本的同名插件的区别。

更多对于 Apache APISIX 反对 WASM 的技术细节能够参考:https://apisix.apache.org/zh/…

目前 Apache APISIX 对 WASM 的反对还处于晚期阶段,咱们会在接下来的几个版本中逐步去欠缺与丰盛相干细节。

欠缺:现有插件性能更为丰盛

当然,除了上述新增的多项性能,咱们还欠缺了 Apache APISIX 现有插件性能,比方:

  • limit-req/conn/count 等插件现已反对采纳一组变量作为限度时的 key
  • proxy-cache 引入基于内存的后端

更多插件新性能与新增组件细节,可参考本次公布对应的 Change log。

下载

获取最新版本的 Apache APISIX 2.11.0,可通过以下形式进行下载安装:

  • 源代码:请拜访 https://apisix.apache.org/dow…
  • 二进制安装包:请拜访 https://apisix.apache.org/zh/…

对于 Apache APISIX

Apache APISIX 是一个动静、实时、高性能的开源 API 网关,提供负载平衡、动静上游、灰度公布、服务熔断、身份认证、可观测性等丰盛的流量治理性能。Apache APISIX 能够帮忙企业疾速、平安地解决 API 和微服务流量,包含网关、Kubernetes Ingress 和服务网格等。

Apache APISIX 落地用户(仅局部)

  • Apache APISIX GitHub:https://github.com/apache/apisix
  • Apache APISIX 官网:https://apisix.apache.org/
  • Apache APISIX 文档:https://apisix.apache.org/zh/…

正文完
 0