openresty应用场景以及研发网关系统功能说明
openresty主要应用场景
Web应用
进行一些业务逻辑处理,甚至进行耗CPU的模板渲染,一般流程:mysql/redis/http获取数据、业务处理、产生JSON/XML/模板渲染内容,比如京东的列表页/商品详情页。
Web防火墙
可以进行IP/URL/UserAgent/Referer黑名单、限流等功能。
接入网关
实现如数据校验前置、缓存前置、数据过滤、API请求聚合、认证管理、负载均衡、流量控制、灰度发布、降级、监控等功能。
以下是具体功能说明:
- 鉴权:基于接入应用进行授权验证
- 安全防护:只有授权的应用才能访问对应的api,ip黑贝名单机制。 扩展:可根据设备id,地理位置,敏感数据二次检验等...
- 限流:防止外界系统对当前系统的过渡调用,导致服务超载,影响核心业务的使用
- 动态配置更新:运行时变更API、分组、组件等配置,自动同步、及时生效。
- 服务路由(rewrite):识别请求参数和路径转发上游API服务。
- 高可用:支持集群化,避免单点故障。
- 高性能:网关无状态,支持横向扩展,运行时弱依赖持久层,最大化提升网关整体性能。
- 熔断(待定):后端服务出现调用超时或者异常,系统自动熔断该服务。
- 健康检查(待定):针对已经被熔断的服务api,动态检测健康状态,若健康则修复已被熔断的api。(扩展:服务检查)
- 灰度发布:产品支持让指定部分客户端应用使用新版本API,其他应用继续使用以前的API,当新版本的API逐渐稳定后,所有用户能平滑过渡到新版本的API。使用灰度发布能够及早获得用户的意见反馈,完善产品功能,提升产品质量。让用户参与产品测试,加强与用户互动,降低产品升级所影响的用户范围。
- 缓存:缓存api后端服务返回的数据,降低后端服务的压力。
- 分布式缓存:当系统api缓存量大时 可使用redis等集群提高系统响应
- 日志记录:以指定的维度存入日志系统,方便自定义审计和统计。
- 超时控制:通过API配置访问超时时间,超时后立即返回,避免工作线程长时间等等。
- 服务编排:将多个后端服务聚合成一个API暴露,减小客户端开发复杂度,快速生产新的API。
- 管理中心:API网关后台管理中心简洁明了,方便API网关管理员对API进行管理,数据面板方便了解系统运行情况。
- 监控中心:监控中心对API运行情况一目了然,通过分析API异常告警辅助系统运维。