专栏首页冷冷国产微服务网关Apache APISIX 上手

国产微服务网关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 , 可以看到相较于于 KongTraefik 从源码角度非常简洁。

安装

安装 openresty

  • 基于 OpenResty 实现的,记住 OpenResty一个基于Nginx 与Lua 的高性能Web 平台.
yum install yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

yum install -y openresty 

安装 etcd

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

 yum install -y https://github.com/iresty/apisix/releases/download/v0.8/apisix-0.8-0.el7.noarch.rpm

启动 apisix

sudo apisix start

访问控制台: 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 Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 日活亿级用户的服务器架构要怎么搭?

    本来没想写这个题材的,为了某某童鞋能够更好的茁壮成长,临时写一篇负载均衡的。负载均衡,大家可能听过什么3层负载均衡、4层负载均衡、7层负载均衡什么的?那这是怎么...

    老钱
  • Nginx反向代理与负载均衡

    在做需求的时候,有时候会和别的三方系统交互,如调用一个第三方系统的http接口查询商品物流信息,获得响应数据返回给我们自己系统的前端页面进行展示,整个流程会遇到...

    walking在cloud.tencent
  • 关于高性能负载均衡架构,这些知识点大多数人不知道!

    单服务器无论如何优化,无论采用多好的硬件,总会有一个性能天花板,当单服务器的性能无法满足业务需求时,就需要设计高性能集群来提升系统整体的处理性能。

    iMike
  • 《云原生服务网格Istio》第3章 非侵入的流量治理

    yeedomliu
  • Spring Cloud OpenFeign:基于 Ribbon 和 Hystrix 的声明式服务调用

    Feign 是声明式的服务调用工具,我们只需创建一个接口并用注解的方式来配置它,就可以实现对某个服务接口的调用,简化了直接使用 RestTemplate 来调用...

    macrozheng
  • 赛题解析:如何设计和实现自适应的负载均衡

    在现代分布式应用中,服务请求是由物理机或虚拟机组成的 server 池进行处理的。 通常,server 池规模巨大且服务容量各不相同,受网络、内存、CPU、下游...

    用户5397975
  • 12306抢票带来的启示:看我如何用Go实现百万QPS的秒杀系统(含源码)

    Go语言的出现,让开发高性能、高稳定性服务端系统变的容易,与高贵冷艳的Erlang语言不同的是,Go语言简单易学,在高性能服务端架构中的应用越来越广泛。

    JackJiang
  • 【Kubernetes系列】第6篇 Ingress controller - traefik组件介绍

    为了能够让Ingress资源能够工作,在Kubernetes集群中必须至少有一个运行中的ingress controller组件。也就是说如果在kubernet...

    HankerCloud
  • Spring Cloud Zuul:API网关服务

    API网关为微服务架构中的服务提供了统一的访问入口,客户端通过API网关访问相关服务。API网关的定义类似于设计模式中的门面模式,它相当于整个微服务架构中的门面...

    macrozheng
  • “12306”是如何支撑百万QPS的?

    高并发的系统架构都会采用分布式集群部署,服务上层有着层层负载均衡,并提供各种容灾手段(双火机房、节点容错、服务器灾备等)保证系统的高可用,流量也会根据不同的负载...

    数据猿

扫码关注云+社区

领取腾讯云代金券