APISIX简介与应用 您所在的位置:网站首页 halo是什么语言开发的 APISIX简介与应用

APISIX简介与应用

2024-06-29 10:30| 来源: 网络整理| 查看: 265

APISIX 是一个云原生、高性能、可扩展的微服务 API 开源网关,基于OpenResty(Nginx+Lua)和etcd来实现,对比传统的API网关,具有动态路由和热插件加载的特点。系统本身自带前端,可以手动配置路由、负载均衡、限速限流、身份验证等插件,操作方便。APISIX是用Lua语言开发,语言相对简单,容易上手,同时可以按自己的需求进行系统的二次开发以及开发自己的插件,目前APISIX已经发布到1.1版本。

本文将从APISIX功能,安装以及使用三个方面对APISIX进行介绍。

一、APISIX功能

APISIX的功能有很多,包括动态路由、url重写、动态上游、IP黑白名单、A/B测试、灰度发布、限速限流、监控报警、健康检查等等,本文只介绍几个比较常用的功能,其他功能具体可以查看APISIX的官方文档说明。

1.服务热启动功能

使用过Nginx的同学都会遇到过这种情况,在修改nginx.conf后需要重启nginx服务修改才会生效,重启时间虽然短暂,但难免会有一段服务不可用时间。当然,可以通过其他方式进行规避服务不可用。APISIX的服务热启动通过在路由、Service、Upstreams等插件中动态的修改配置即可,并不需要再重启APISIX服务来使修改生效。

2.热插件功能

不再需要在nginx.conf文件中编写复杂的规则代码来实现需求,通过使用自带的路由、Upstreams等插件,在前端页面中添加所需要的规则即可实现。下文应用会详细介绍。目前通过插件可以实现uri重写、根据请求信息中的内容实现路由跳转等等。也可以根据自己的需求开发符合自己需求的插件。

3.动态负载均衡

通过Upstreams插件,可以实现基于权重的roundrobin和chash负载均衡。

4.数据集群

APISIX支持etcd集群,通过etcd集群增强了系统的可用性,大大减小了故障损失。

5.监控

APISIX外接第三方prometheus监控系统,提供符合prometheus数据格式的监控指标数据。Prometheus 是由 SoundCloud 开源监控告警解决方案,已经比较成熟完善。

二、APISIX安装 1.安装OpenResty和etcd依赖

CentOS7

# install epel, `luarocks` need it. wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo rpm -ivh epel-release-latest-7.noarch.rpm # add OpenResty source sudo yum install yum-utils sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo # install OpenResty, etcd and some compilation tools sudo yum install -y etcd openresty curl git gcc luarocks lua-devel # start etcd server sudo service etcd start

Ubuntu 16.04 & 18.04

# add OpenResty source wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add - sudo apt-get update sudo apt-get -y install software-properties-common sudo add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" sudo apt-get update # install OpenResty, etcd and some compilation tools sudo apt-get install -y git etcd openresty curl luarocks # start etcd server sudo service etcd start 2.安装APISIX

通过源码包安装:

# 下载源码包 wget http://www.apache.org/dist/incubator/apisix/1.1/apache-apisix-1.1-incubating-src.tar.gz tar zxvf apache-apisix-1.1-incubating-src.tar.gz # 安装运行时依赖的Lua库 cd apache-apisix-1.1-incubating make deps 3.安装控制台 确保你的运行环境中的 Node 版本 >= 8.12.0。 3.1 下载 Dashboard源码: git clone https://github.com/apache/incubator-apisix-dashboard.git 3.2 安装依赖并构建 git checkout #这里的tag版本和你使用的apisix版本一致 yarn && yarn build:prod 3.3与 APISIX 集成

把编译后的在 /dist 目录下的所有文件,拷贝到 apisix/dashboard 目录下。 使用浏览器打开 http://127.0.0.1:9080/apisix/dashboard/ 即可使用, 不用填写用户名和密码,直接登录。

4.管理(启动、关闭)APISIX服务 # init nginx config file and etcd make init # start APISIX server make run # stop APISIX server make stop 三、APISIX应用

配置一个可用的链路。

1.配置Upstream

创建Upstream界面中有Desc、Type、Key、Node。Type中根据需要选择roundrobin、chash两种方式,如果选择chash方式需要从下拉列表中选择合适的Key。Node节点根据实际需求可以添加多个,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PjAMcN42-1588154630239)(D:\ai\upstreams.png)]

2.配置Routes

创建Route界面中有Desc、URIs、Hosts、AddURI、Remote Address、Methods、Upstream、Service。在URIs中添加接收的请求uri,支持正则表达,例如:请求地址有http://ip:port/hello/world.jsp、http://ip:port/hello/apisix.do,这里的URIs可以添加/hello/*来匹配处理这类请求。在Upstream中选择刚才创建的upstream。其他选择可以默认不填,如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9opevy2g-1588154630243)(D:\ai\routes.png)]

3.配置完成

完成上述两步配置后,就可以通过client端请求APISIX实现路由跳转。

四、小结

综上,APISIX搭建比较简单,上手比较容易,能够满足日常的网关需求,同时也可以自己进行二次开发。当然,APISIX中也有其他功能,相关功能可以自己进行扩展研究。可以根据自己的实际需求,对APISIX功能进行适当的删减,符合自己的才是最重要的。

后期需要在监控方面进行二次开发,目前是外接三方Prometheus,Prometheus是一款比较成熟完善的监控系统,但是外接三方让系统看起来比较庞大,并不是那么的精简,后期可以参考Prometheus中监控指标进行二次开发。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有