Apache APISIX

云原生 API 网关
授权协议 Apache-2.0
开发语言 Lua
所属分类 程序开发、 服务框架/平台
软件类型 开源软件
地区 国产
投 递 者 冯卓
操作系统 Linux
开源组织 Apache
适用人群 未知
 软件概览

APISIX 是一个云原生 API 网关,是 Apache 软件基金会的顶级项目。

APISIX 从 etcd 中订阅获取所需的配置并以热更新的方式来更改自身行为,更改 etcd 中的配置即可完成对 APISIX 网关节点的控制,比如:动态上游、请求限速等。

设计文档

快速上手

  1. 启动 APISIX
sudo apisix start
  1. 测试限流插件

为了方便测试,下面的示例中设置的是 60 秒最多只能有 2 个请求,如果超过就返回 503:

curl http://127.0.0.1:2379/v2/keys/apisix/routes/1 -X PUT -d value='
{
	"methods": ["GET"],
	"uri": "/index.html",
	"id": 1,
	"plugin_config": {
		"limit-count": {
			"count": 2,
			"time_window": 60,
			"rejected_code": 503,
			"key": "remote_addr"
		}
	},
	"upstream": {
		"type": "roundrobin",
		"nodes": {
			"39.97.63.215:80": 1
		}
	}
}'
$ curl -i http://127.0.0.1:9080/index.html
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 13175
Connection: keep-alive
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
Server: APISIX web server
Date: Mon, 03 Jun 2019 09:38:32 GMT
Last-Modified: Wed, 24 Apr 2019 00:14:17 GMT
ETag: "5cbfaa59-3377"
Accept-Ranges: bytes

...
  • 如何构建 Apache APISIX 注:此文档构建环境为腾讯云CentOS 7.9,虚拟机同样适用。 步骤1:安装依赖 # 编写依赖脚本 cd /usr/local && mkdir apisix-deps cd apisix-deps && vim deps.sh # 脚本内容见下方代码块 # 添加权限并执行脚本,安装依赖 chmod +x deps.sh && ./deps.sh rm -f

 相关资料
  • # Overview YunPian API for golang # Usage     func test() {    tpl := "【测试】#platform# 后台 #service# 出现问题,问题可能是:#info#,请尽快解决。"         pattern := "#platform#=XX,#service#=派发服务,#info#=无法连接到[127.0.0.1:200

  • 楼主研一,但是误投了暑期实习,所以顺便就面了 1.在滴滴工作做的内容 2.做短视频后端的背景是什么?为什么要做? 3.这个项目做了哪些东西? 4.关注的表是怎么设计的?关注和被关注者关系存储在一行么?存储在一行又什么问题?不存在一行又有什么问题?(没搞懂什么意思)(回答的不好) 5.项目中rabbitmq用在哪些场景?(关注和点赞) 6.rabbitmq的架构说一下 7.rabbitmq是否有消息

  • 面试大概四十分钟,手撕了十几分钟,总时长1个小时。总结:问的八股还是挺少的,主要是深入原理,分析为什么这样做,做了有什么效果,最后有什么好处,有好多问题一时真的想不太好,考验发散性思维。最后:菜就多练。 Channel在go中起什么作用 Channel为什么需要两个队列实现 go为什么用搞Channel,别的语言为什么没有 channel底层是使用锁控制并发的,为什么不直接使用锁 介绍一下GMP调

  • 要想搞明云原生的未来,首先我们要弄明白云原生是什么。CNCF给出的定义是: 容器化 微服务 容器可以动态调度 我认为云原生实际上是一种理念或者说是方法论,它包括如下四个方面: 容器化:作为应用包装的载体 持续交付:利用容器的轻便的特性,构建持续集成和持续发布的流水线 DevOps:开发与运维之间的协同,上升到一种文化的层次,能够让应用快速的部署和发布 微服务:这是应用开发的一种理念,将单体应用拆分

  • 主要内容:什么是云原生,云原生的4大组件,如何云原生什么是云原生 技术的变革,一定是思想先行,云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(CloudNative)是一个组合词,Cloud+Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。Pivotal公司的Matt Stine

  • WEB应用开发-阿里云API网关 简介 资源 使用 WEB应用开发-阿里云API网关 更新时间:2018-02-01 21:18:00 简介 针对 Web 非托管应用 的后端服务开发包。服务API 网关(API Gateway),提供高性能、高可用的 API 托管服务,帮助用户对外开放其部署在 ECS、容器服务等阿里云产品上的应用,提供完整的 API 发布、管理、维护生命周期管理。用户只需简单操作

  • 现在我们将探索云原生应用架构的几个主要特征,和这些特征是如何解决我们前面提到的使用云原生应用架构的动机。 12因素应用 12因素应用是一系列云原生应用架构的模式集合,最初由Heroku提出。这些模式可以用来说明什么样的应用才是云原生应用。它们关注速度、安全、通过声明式配置扩展、可横向扩展的无状态/无共享进程以及部署环境的整体松耦合。如Cloud Foundry、Heroku和Amazon Elas

  • 我在做一个无服务器架构的项目。 API网关不能提供适当的方法来处理这类问题。 所以我开始想我能做什么: AWS WAF显然是一个解决方案。 我在API网关前面放了一个云前端分发版。 我意识到这可能是一个变通的解决方案,但它是吗? 以下是我发现的问题: 有什么我误解了吗?