apisix 简介和安装-csdn博客


本站和网页 https://blog.csdn.net/qq_44787816/article/details/125321554 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Apisix 简介和安装-CSDN博客
Apisix 简介和安装
最新推荐文章于 2024-04-24 22:51:49 发布
白鸽呀
阅读量7.3k
收藏
13
点赞数
分类专栏:
Apisix网关
文章标签:
java
开发语言
版权声明:本文为博主原创文章,遵循
CC 4.0 BY-SA
版权协议,转载请附上原文出处链接和本声明。
本文链接:
https://blog.csdn.net/qq_44787816/article/details/125321554
版权
专栏收录该内容
1 篇文章
3 订阅
订阅专栏
1、Apisix简介
Apache APISIX 是一个动态、实时、高性能的 API 网关, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。
你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、 A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。
全平台
云原生: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。
支持 ARM64: 不用担心底层技术的锁定。
多协议
TCP/UDP 代理: 动态 TCP/UDP 代理。
Dubbo 代理: 动态代理 HTTP 请求到 Dubbo 后端。
动态 MQTT 代理: 支持用 client_id 对 MQTT 进行负载均衡,同时支持 MQTT 3.1.* 和 5.0 两个协议标准。
gRPC 代理:通过 APISIX 代理 gRPC 连接,并使用 APISIX 的大部分特性管理你的 gRPC 服务。
gRPC Web 代理:通过 APISIX 代理 gRPC Web 请求到上游 gRPC 服务。
gRPC 协议转换:支持协议的转换,这样客户端可以通过 HTTP/JSON 来访问你的 gRPC API。
Websocket 代理
Proxy Protocol
HTTP(S) 反向代理
SSL:动态加载 SSL 证书。
全动态能力
热更新和热插件: 无需重启服务,就可以持续更新配置和插件。
代理请求重写: 支持重写请求上游的host、uri、schema、enable_websocket、headers信息。
输出内容重写: 支持自定义修改返回内容的 status code、body、headers。
Serverless: 在 APISIX 的每一个阶段,你都可以添加并调用自己编写的函数。
动态负载均衡:动态支持有权重的 round-robin 负载平衡。
支持一致性 hash 的负载均衡:动态支持一致性 hash 的负载均衡。
健康检查:启用上游节点的健康检查,将在负载均衡期间自动过滤不健康的节点,以确保系统稳定性。
熔断器: 智能跟踪不健康上游服务。
代理镜像: 提供镜像客户端请求的能力。
流量拆分: 允许用户逐步控制各个上游之间的流量百分比。
精细化路由
支持全路径匹配和前缀匹配
支持使用 Nginx 所有内置变量做为路由的条件,所以你可以使用 cookie, args 等做为路由的条件,来实现灰度发布、A/B 测试等功能
支持各类操作符做为路由的判断条件,比如 {“arg_age”, “>”, 24}
支持自定义路由匹配函数
IPv6:支持使用 IPv6 格式匹配路由
支持路由的自动过期(TTL)
支持路由的优先级
支持批量 Http 请求
支持通过GraphQL属性过滤路由
安全防护
多种身份认证方式: key-auth, JWT, basic-auth, wolf-rbac, casbin, keycloak。
IP 黑白名单
Referer 黑白名单
IdP 支持: 支持外部的身份认证服务,比如 Auth0,Okta,Authing 等,用户可以借此来对接 Oauth2.0 等认证方式。
限制速率
限制请求数
限制并发
防御 ReDoS(正则表达式拒绝服务):内置策略,无需配置即可抵御 ReDoS。
CORS:为你的 API 启用 CORS。
URI 拦截器:根据 URI 拦截用户请求。
请求验证器。
CSRF:基于 Double Submit Cookie 的方式保护你的 API 远离 CSRF 攻击。
运维友好
OpenTracing 可观测性: 支持 Apache Skywalking 和 Zipkin。
对接外部服务发现:除了内置的 etcd 外,还支持 Consul 和 Nacos,以及 Eureka。
监控和指标: Prometheus
集群:APISIX 节点是无状态的,创建配置中心集群请参考 etcd Clustering Guide。
高可用:支持配置同一个集群内的多个 etcd 地址。
控制台: 操作 APISIX 集群。
版本控制:支持操作的多次回滚。
CLI: 使用命令行来启动、关闭和重启 APISIX。
单机模式: 支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。
全局规则:允许对所有请求执行插件,比如黑白名单、限流限速等。
高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。
故障注入
REST Admin API: 使用 REST Admin API 来控制 Apache APISIX,默认只允许 127.0.0.1 访问,你可以修改 conf/config.yaml 中的 allow_admin 字段,指定允许调用 Admin API 的 IP 列表。同时需要注意的是,Admin API 使用 key auth 来校验调用者身份,在部署前需要修改 conf/config.yaml 中的 admin_key 字段,来保证安全。
外部日志记录器:将访问日志导出到外部日志管理工具。(HTTP Logger、TCP Logger、Kafka Logger、UDP Logger、RocketMQ Logger、SkyWalking Logger、Alibaba Cloud Logging(SLS)、Google Cloud Logging、Splunk HEC Logging、File Logger)
Helm charts
高度可扩展
自定义插件: 允许挂载常见阶段,例如init, rewrite,access,balancer,header filter,body filter 和 log 阶段。
插件可以用 Java/Go/Python 编写
自定义负载均衡算法:可以在 balancer 阶段使用自定义负载均衡算法。
自定义路由: 支持用户自己实现路由算法。
多语言支持
Apache APISIX 是一个通过 RPC 和 Wasm 支持不同语言来进行插件开发的网关. Multi Language Support into Apache APISIX
RPC 是当前采用的开发方式。开发者可以使用他们需要的语言来进行 RPC 服务的开发,该 RPC 通过本地通讯来跟 APISIX 进行数据交换。到目前为止,APISIX 已支持Java, Golang, Python 和 Node.js。
Wasm 或 WebAssembly 是实验性的开发方式。 APISIX 能加载运行使用Proxy Wasm SDK编译的 Wasm 字节码。开发者仅需要使用该 SDK 编写代码,然后编译成 Wasm 字节码,即可运行在 APISIX 中的 Wasm 虚拟机中。
Serverless
Lua functions: 能在 APISIX 每个阶段调用 lua 函数.
Azure functions: 能无缝整合进 Azure Serverless Function 中。作为动态上游,能将特定的 URI 请求全部代理到微软 Azure 云中。
Apache OpenWhisk: 与Apache OpenWhisk集成。作为动态上游,能将特定的 URI 请求代理到你自己的 OpenWhisk 集群。
2、安装
(1)安装 OpenResty 和 Apache APISIX 的 RPM 仓库
sudo
yum
install
-y https://repos.apiseven.com/packages/centos/apache-apisix-repo-1.0-1.noarch.rpm
(2)安装etcd
ETCD_VER
=
v3.4.15
# choose either URL
GOOGLE_URL
https://storage.googleapis.com/etcd
GITHUB_URL
https://github.com/etcd-io/etcd/releases/download
DOWNLOAD_URL
${GITHUB_URL}
rm
-f /tmp/etcd-
${ETCD_VER}
-linux-amd64.tar.gz
-rf /tmp/etcd-download-test
&&
mkdir
-p /home/project/apisix/etcd
curl
-L
${DOWNLOAD_URL}
/etcd-
-linux-amd64.tar.gz -o /tmp/etcd-
tar
xzvf /tmp/etcd-
-linux-amd64.tar.gz -C /home/project/apisix/etcd --strip-components
# install end and check etcd version
/home/project/apisix/etcd/etcd --version
/home/project/apisix/etcd/etcdctl version
etcd启动命令
./etcd
(3)安装apisix
# 查看仓库中最新的 apisix 软件包的信息
yum info -y apisix
# 显示仓库中现有的 apisix 软件包
yum --showduplicates list apisix
# 安装最新的 apisix 软件包
apisix
# 安装指定版本2.13.1-0.el7
apisix-2.13.1-0.el7
apisix 相关命令
# 运行以下命令初始化 NGINX 配置文件和 etcd. initialize NGINX config file and etcd
$ apisix init
# generate `nginx.conf` from `config.yaml` and test it
$ apisix
test
# 启动 Apache APISIX. start Apache APISIX server
$ apisix start
# 其他命令
# 优雅停机 stop Apache APISIX server gracefully
$ apisix quit
# 强制停机 stop Apache APISIX server immediately
$ apisix stop
# 其他操作 more actions find by `help`
help
(4)安装apisix-dashboard
安装dashboard
-y https://github.com/apache/apisix-dashboard/releases/download/v2.13.1/apisix-dashboard-2.13.1-0.el7.x86_64.rpm
启动
systemctl start apisix-dashboard
关注博主即可阅读全文
优惠劵
关注
点赞
觉得还不错?
一键收藏
打赏
知道了
评论
Apache APISIX 是一个动态、实时、高性能的 API 网关, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游、动态证书、 A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、抵御恶意攻击、监控报警、服务可观测性、服务治理等。全平台云原生: 平台无关,没有供应商锁定,无论裸机还是 Kubernetes,APISIX 都可以运行。支持 ARM64: 不用担心底
复制链接
扫一扫
专栏目录
api
six-2.13.1离线
安装
包.zip 适用于centos7
08-30
包.zip
网关
centos7
离线
不需要联网即可
six网关、JMeter压测 —— k8s从入门到高并发系列教程 (八)
fanghailiang2016的博客
09-02
1130
面向外部的大流量的网络请求,我们需要一个
网关——
six。这样的demo能不能开放出来给用户使用?我们先用JMeter来压测一下吧
参与评论
您还未登录,请先
登录
后发表或查看评论
高性能
API
云原生网关
SIX
与配置指南
qq_34185638的博客
02-26
1887
SIX介绍
qq_33358438的博客
02-16
1350
Apache
SIX 是 Apache 软件基金会下的云原生
网关,它兼具动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)、服务熔断、身份认证、可观测性等丰富的流量管理功能。我们可以使用 Apache
SIX 来处理传统的南北向流量,也可以处理服务间的东西向流量。
six
详解(版本2.7)
蓝亚之舟的博客
09-09
1万+
1、
网关介绍
网关现在使用的是一个开源项目(
six),然后在其上进行的二次
开发
(修改配置和增加插件),
网关本身相当于是代理服务器,或者说其本质就是一个代理服务器。
six的github网址:https://github.com/apache/
使用
编写
six插件:https://
six.apache.org/blog/2021/06/21/use-
Java
-to-write-Apache-
SIX-plugins
中文官网地址:https:
SIX-消费者-路由只能由特定消费者消费
fylysyn12291211的专栏
08-22
419
SIX,网关,只有授权的消费者才能访问路由规则,其余消费者无法请求
云原生
SIX 入门教程
easylife206的专栏
07-29
5226
公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !​Apache
网关,它具有动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)、服务熔断、限速、防御恶意攻击、身份认证、可观测性等丰富的流量管理功能。我们可以使用 Apache
SIX 来处理传统的南北向流量,也可以处理服务间...
云原生下最火的
网关-
03-03
3504
SIX是一款基于Nginx和OpenResty的云原生
网关,由Apache
SIX社区维护。它提供了一个可扩展的、低延迟、高性能的
网关解决方案,支持常见的
管理功能,如流量控制、认证、转发、限速、缓存、日志等,并提供了灵活的插件机制,可支持自定义插件的
和集成。
SIX简要叙述
учёба
12-16
1 概述
1.1 概念
SIX 是基于 OpenResty + etcd 实现的云原生、高性能、可扩展的微服务
OpenResty:通过 Lua 扩展 Nginx 实现的可伸缩的 Web 平台
Lua :使用C
语言
表现的一种轻量级可扩展脚本
,开源
OpenResty 是一个 Web 应用服务器,Web
人员可以使用 Lua 脚本
调动 Nginx 支持的各种 C 以及 Lua 模块,并且性能非常高
OpenResty 的目标是让你的 Web 服务直接跑在 Nginx 服务内
SIX、
SIX Dashboard搭建、路由配置及插件使用
热门推荐
CaptainJava的博客
06-28
本文简要描述了
SIX Dashboard的搭建
以及消费者consumer、常用插件等的使用
six高性能网关-中文
文档
Z.X的博客
06-12
2982
2020年6月12日13:48:33
github:https://github.com/apache/incubator-
目前此项目已有成为apache孵化项目
官方中文文档 :https://github.com/apache/incubator-
six/blob/master/README_CN.md
支持的功能很多,我个人比较推荐服务发现,这个很省资源,不然得吧j...
前端工具postman和
07-13
six-website:Apache
SIX网站
04-12
SIX:trade_mark:网站
云原生微服务
网关的网站。 用法 $ cd website $ yarn $ yarn start
多亏了
Api
six微服务网关实践
10-07
six-dashboard:适用于Apache
SIX的仪表板
01-30
SIX混合了数据平面和控制平面,并将演变为纯数据平面。
该项目包括Manager
,它将逐步取代Apache
SIX中的Admin
注意:当前仪表板尚未完全涵盖Apache
SIX功能,查看里程碑。 演示版 ...
string模拟实现
m0_73969414的博客
04-23
1305
c++中string的模拟实现,面试必会知识点
web-SpringBoot基础
kussm_的博客
04-20
1224
Spring的官网(Spring的
简介
:Spring makes
simple。Spring Boot 可以帮助我们非常快速的构建应用程序、简化
、提高效率。创建一个子包controller。
| 冒泡排序算法实现
最新发布
yingzix688的博客
04-24
609
题目描述
编写一个
程序,实现冒泡排序算法。程序需要能够接收一个整型数组作为输入,并输出排序后的数组。
冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
JUC(
.util.concurrent) 的常见类
weixin_43497876的博客
1297
Callable 是一个 interface(类似之前的 Runnable,用来描述一个任务,但是没有返回值)也是描述一个任务的,有返回值。方便程序猿借助多线程的方式计算结果.创建线程计算 1 + 2 + 3 + ... + 1000, 不使用 Callable。
docker
01-18
以下是使用Docker
six的步骤:
1. 首先,确保已经
了Docker。如果没有
,请参考[Docker官方文档](https://docs.docker.com/engine/install/)进行
2. 打开终端或命令行界面,运行以下命令拉取
six镜像:
```shell
docker pull apache/
```
3. 创建一个名为`
six`的网络,用于
six容器和其他容器之间的通信:
docker network create
4. 创建一个名为`
six`的目录,用于存储
six的配置文件和日志:
mkdir -p /usr/local/
5. 在`
six`目录下创建一个名为`config.yaml`的配置文件,并将以下内容复制到文件中:
```yaml
etcd:
host:
- "http://etcd:2379"
6. 在`
six`目录下创建一个名为`docker-compose.yaml`的文件,并将以下内容复制到文件中:
version: '3'
services:
image: quay.io/coreos/etcd:v3.4.13
command: etcd --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379
networks:
six:
image: apache/
volumes:
- /usr/local/
six:/usr/local/
environment:
- ETCD_HOSTS=http://etcd:2379
ports:
- "9080:9080"
- "9443:9443"
external: true
7. 在终端或命令行界面中,进入`
six`目录,并运行以下命令启动
six容器:
docker-compose up -d
8. 等待一段时间,
six容器将会启动并运行。可以通过访问`http://localhost:9080`或`https://localhost:9443`来验证
six是否成功
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
CSDN认证博客专家
CSDN认证企业博客
码龄5年
Java领域优质创作者
230
原创
5205
周排名
总排名
37万+
访问
等级
3027
积分
粉丝
339
获赞
87
1296
私信
热门文章
Flowable基本使用介绍和Flowable数据库表解释
21574
node-sass与node版本映射
16041
什么是GC root ,GC root原理
15434
数据库三大范式(通俗理解)
14761
[数据仓库]分层概念,ODS,DM,DWD,DWS,DIM的概念
9439
分类专栏
面试历程
付费
10篇
AI
1篇
Doris
3篇
架构
4篇
大数据
17篇
Mybatis源码
8篇
Sentinel源码
6篇
Netty源码
9篇
Flowable流程引擎
SpringMVC源码
SpringBoot源码
2篇
Spring源码
Java源码
42篇
堆外缓存
JavaAgent
SpringCloud分布式
7篇
项目问题
JVM
Redis缓存
19篇
算法与数据结构
15篇
前端
22篇
Quartz任务调度
Mysql数据库
25篇
Java核心编程
32篇
RabbitMQ消息队列
11篇
Docker容器化技术
Java并发
Java面试题
31篇
Mybatis
14篇
Linux服务器
Git版本控制
5篇
Spring
13篇
辅助数据和工具
SpringBoot
最新评论
这个call机是我的:
鸽鸽好棒
markDown转换html后code不换行问题
为何偏偏喜欢你:
nb nb,确实管用👍!
Apache atlas 元数据管理治理平台使用和架构
白鸽呀:
考虑用qualities
Laughing_forest:
atlas本身存在大量漏洞,这个项目漏洞不解决用不了吧
Apache Doris 详细教程(二)
白话机器学习:
博主的文章细节很到位,兼顾实用性和可操作性,感谢博主的分享,期待博主持续带来更多好文
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
最新文章
LLM应用开发框架LangChain
Kafka详细教程(一)
Hadoop之Yarn 详细教程
2024年
2023年
26篇
2022年
73篇
2021年
163篇
2020年
目录
被折叠的 
 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
红包个数最小为10个
红包总金额
红包金额最低5元
余额支付
当前余额
3.43
前往充值 >
需支付:
10.00
取消
确定
下一步
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom
发出的红包
打赏作者
你的鼓励将是我创作的最大动力
¥1
¥2
¥4
¥6
¥10
¥20
扫码支付:
获取中
扫码支付
您的余额不足,请更换扫码支付或
充值
实付
使用余额支付
点击重新获取
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值