我们提供安全,免费的手游软件下载!

安卓手机游戏下载_安卓手机软件下载_安卓手机应用免费下载-先锋下载

当前位置: 主页 > 软件教程 > 软件教程

基于Redis的Higress插件扩展

来源:网络 更新时间:2024-04-28 18:30:59

基于wasm机制,Higress提供了优秀的可扩展性。用户可以基于Go/C++/Rust编写wasm插件,自定义请求处理逻辑,满足用户的个性化需求。目前插件已经支持redis调用,使得用户能够编写有状态的插件,进一步提高了Higress的扩展能力。

文档在插件中调用Redis中提供了完整的网关通过插件调用Redis的例子,包括阿里云Redis实例创建与配置、插件代码编写、插件上传与配置、测试样例等流程。接下来本文重点介绍几个基于Redis的插件。

多网关全局限流

网关已经提供了sentinal限流,能够有效保护后端业务应用。通过redis插件限流,用户可以实现多网关的全局限额管理。

以下为插件代码示例,在请求头阶段检查当前时间内请求次数,如果超出配额,则直接返回429响应。

插件配置如下:

测试结果如下:

结合通义千问实现token限流

对于提供AI应用服务的开发者来说,用户的token配额管理是一个非常关键的功能。以下例子展示了如何通过网关插件实现对通义千问后端服务的token限流功能。

首先需要申请通义千问的API访问,可参考此链接。之后在MSE网关配置相应服务以及路由,如下所示:

编写插件代码,插件中,在响应body阶段去写入该请求使用的token额度,在处理请求头阶段去读redis检查当前剩余token额度,如果已经没有token额度,则直接返回响应,中止请求。

测试结果如下:

基于cookie的缓存、容灾以及会话管理

除了以上两个限流的例子,基于Redis可以实现更多的插件对网关进行扩展。例如基于cookie来做缓存、容灾以及会话管理等功能。

  • 缓存&容灾:基于用户cookie信息缓存请求应答,一方面能够减轻后端服务压力,另一方面,当后端服务不可用时,能够实现容灾效果。
  • 会话管理:使用Redis存储用户的认证鉴权信息,当请求到来时,先访问redis查看当前用户是否被授权访问,如果未被授权再去访问认证鉴权服务,可以减轻认证鉴权服务的压力。

总结

Higress通过支持redis调用,大大增强了插件的能力,使插件功能具有更广阔的想象空间,更加能够适应开发者多样的个性化需求。如果大家有更多关于Higress的想法与建议,欢迎与我们联系!

相关链接:

[1] 在插件中调用Redis
https://help.aliyun.com/zh/mse/user-guide/develop-gateway-plug-ins-by-using-the-go-language?spm=a2c4g.11186623.0.0.45a53597EVVAC0#5e5a601af18al

[2] sentinal 限流
https://help.aliyun.com/zh/mse/user-guide/configure-a-throttling-policy?spm=a2c4g.11186623.0.i4

[3] 链接
https://help.aliyun.com/zh/dashscope/developer-reference/api-details?spm=a2c4g.11186623.0.i4#602895ef3dtl1

作者: 钰诚

原文链接

本文为阿里云原创内容,未经允许不得转载。