国产微服务网关Apache APISIX 上手

2019 年 10 月 17 日,支流科技 API 网关 APISIX 进入 Apache 开始孵化。笔者表示去搜索了一下这家公司 OpenResty 圈内顶级大牛《OpenResty 最佳实践》作者 温铭 和 王院生,这就非常有意思了

APISIX 是一个高性能、可扩展的微服务 API 网关。它是基于 Nginx 和 etcd 来实现,和传统 API 网关相比,APISIX 作为微服务请求网关,通过插件提供负载平衡,日志记录,身份验证等功能:

  • 动态负载均衡: 支持不同上游服务的动态负载均衡
  • 安全插件: 内置安全处理层,支持如OAuth2、ACL、CORS、动态 SSL 和
    IP 限制等
  • 流量控制插件: 速率限制,请求大小限制和响应速率限制等
  • 分析和监控插件:借助如 Prometheus,Datadog 和 Runscope 产品,完成
    API 流量的可视化、检查和监控
  • 日志插件:记录请求或响应日志,并通过 HTTP、TCP 或 UDP 等方式发送
    到你的系统(比如: StatsD, Syslog)

github: https://github.com/iresty , 可以看到相较于于 Kong 、 Traefik 从源码角度非常简洁。

安装

安装 openresty

  • 基于 OpenResty 实现的,记住 OpenResty一个基于Nginx 与Lua 的高性能Web 平台.

安装 etcd

  • etcd 一个 (key-value) 强一致性NoSQL数据库。相较于 Kong使用的PostgreSQL关系型数据库,又是一大亮点

启动 apisix

访问控制台:
http://127.0.0.1:9080/apisix/dashboard/ ,直接访问即可

PS: 登录功能没有实现,骗人的!

功能体验

  • 目标我们实现web服务的反向代理,并且可以实现限流
  1. upstream > 添加

2 . routes > 添加

令牌桶限流配置

  • rate # 流速 每秒
  • burst # 令牌桶的容积
  • key #根据哪个header 来限流
  • rejected_code # 返回错误码
  • 访问: ip:9080/ 体验限流效果

在线演示版本

官方部署了一个在线的 dashboard ,方便大家了解 APISIX。http://apisix.iresty.com

项目推荐: 基于Spring Boot 2.2.1、 Spring Cloud Hoxton、 OAuth2 的RBAC 权限管理系统

https://gitee.com/log4j/pig

相关文章

Nginx动荡:核心开发者因安全分歧出走,启动分叉项目

IT之家 2 月 19 日消息,核心开发者马克西姆杜宁(Maxim Dounin)近日发布公告,因安全披露和修复漏洞优先级上的分歧,决定退出 Nginx 项目,并分叉推出 freenginx 项目。杜...

HW才刚开始,就爆大瓜了,这个圈子里少装B,低调一些···

最近,网上又开始热闹了,好多人都在传一些聊天记录,跟看戏一样。有人在朋友圈里瞎吹牛,结果服务器被人搞坏了,就连自己的简历也被人翻出来了。这事儿挺让人没想到的,有些人学了点小本事,就觉得自己天下第一,到...

413 Request Entity Too Large

413 Request Entity Too Large“413 Request Entity Too Large” 是 HTTP 状态码的一种,表示请求的实体(通常是指请求消息中的主体部分,如上传的...

503 Service Unavailable:服务器暂时无法处理请求

当用户访问网站时,遇到“503 Service Unavailable”错误时,意味着服务器暂时无法处理请求。这种情况通常是由于服务器超载、正在进行维护或其他临时问题引起的。了解 503 错误的成因及...

OpenNJet:基于 NGINX 的面向互联网和云原生的运行时组态服务程序

#暑期创作大赛#OpenNJet 应用引擎是基于 NGINX 的面向互联网和云原生应用提供的运行时组态服务程序。具备环境感知、安全控制、加速优化等能力,作为底层引擎,OpenNJet 利用动态加载机制...