国产API云原生网关,基于 OpenResty + etcd 实现的云原生、高性能、可扩展带可视化管理

提到API网关,大家比较熟悉的有Spring Cloud体系中的Gateway和Zuul,这些网关在使用的时候基本都要修改配置文件或自己开发功能。今天给大家介绍一款功能强大的国产API网关apisix,它基于 OpenResty + etcd 实现的云原生高性能可扩展的微服务 API 网关自带可视化管理功能,多达几十种插件支持,希望对大家有所帮助! 

一、简介

apisix是一款云原生微服务API网关,可以为API提供终极性能、安全性、开源和可扩展的平台。apisix基于Nginx和etcd实现,与传统API网关相比,apisix具有动态路由和插件热加载,特别适合微服务系统下的API管理。APISIX 通过插件机制,提供了动态负载平衡、身份验证、限流限速等等功能,当然我们也可以自己开发插件进行拓展

核心概念


我们先来了解下apisix的一些核心概念,对我们接下来的使用会很有帮助!

上游(Upstream):可以理解为虚拟主机,对给定的多个目标服务按照配置规则进行负载均衡。
路由(Route):通过定义一些规则来匹配客户端的请求,然后对匹配的请求执行配置的插件,并把请求转发给指定的上游。
消费者(Consumer):作为API网关,有时需要知道API的消费方具体是谁,通常可以用来做身份认证。
服务(Service): 可以理解为一组路由的抽象。它通常与上游是一一对应的,路由与服务之间,通常是多对一的关系。
插件(Plugin):API网关对请求的增强操作,可以对请求增加限流、认证、黑名单等一系列功能。可以配置在消费者、服务和路由之上。
 

二、安装

《APISIX 官方文档 —— 安装》中,介绍了源码包、RPM 包、Luarocks、Docker 四种安装方式。这里我们使用 CentOS 7.X 系统,所以采用 RPM 包。
因为 APISIX 是基于 OpenResty + etcd 来实现,所以需要安装它们两个。

2.1 安装依赖

CentOS 7脚本

# 安装 epel, `luarocks` 需要它
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -ivh epel-release-latest-7.noarch.rpm

# 添加 OpenResty 源
sudo yum install yum-utils
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

# 安装 OpenResty, etcd 和 编译工具
sudo yum install -y etcd openresty curl git gcc luarocks lua-devel

# 开启 etcd server
sudo service etcd start

2.2 安装 Apache APISIX

通过 RPM 包安装(CentOS 7),其他安装方式见链接

2.2.1 安装脚本

sudo yum install -y https://github.com/apache/incubator-apisix/releases/download/1.3/apisix-1.3-0.el7.noarch.rpm
一定要看到最后打印如下信息才安装成功,否则查看报错信息来解决。

Installed:
  apisix.noarch 0:1.3-0                                                                                                                                                                                          

Complete!

此时,APISIX 安装在/usr/local/apisix/目录,使用如下命令查看各个文件夹:

$ cd /usr/local/apisix/
$ ls -ls
total 40
4 drwxr-xr-x 8 root   root 4096 May  1 11
:40 apisix # APISIX 程序
4 drwx------ 2 nobody root 4096 May  1 20:44 client_body_temp
4 drwxr-xr-x 3 root   root 4096 May  1 20:50 conf # 配置文件
4 drwxr-xr-x 6 root   root 4096 May  1 20:40 dashboard # APISIX 控制台
4 drwxr-xr-x 5 root   root 4096 May  1 20:40 deps
4 drwx------ 2 nobody root 4096 May  1 20:44 fastcgi_temp
4 drwxrwxr-x 2 root   root 4096 May  1 20:44 logs # 日志文件
4 drwx------ 2 nobody root 4096 May  1 20:44 proxy_temp
4 drwx------ 2 nobody root 4096 May  1 20:44 scgi_temp
4 drwx------ 2 nobody root 4096 May  1 20:44 uwsgi_temp

2.2.2 启动 APISIX

命令:sudo apisix start
默认情况下,APISIX 启动在 9080 端口,使用如下命令测试服务是否正常启动:

$ curl http://127.0.0.1:9080/
{"error_msg":"failed to match any routes"}

2.2.3 界面访问 APISIX

三、进阶使用

apisix通过启用插件,可以实现一系列丰富的功能,里面很多功能自己可以挨个尝试,目前我只尝试过Upstream、Routes等基本功能,我也是逐步摸索,后续更新

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值