您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何上手国产微服务网关Apache APISIX
## 一、APISIX简介
Apache APISIX 是一款国产开源的高性能云原生API网关,由深圳支流科技发起并捐赠给Apache基金会。作为微服务架构中的核心组件,它具有以下核心优势:
1. **动态路由与负载均衡**:支持热更新路由规则
2. **多协议支持**:HTTP/HTTPS/gRPC/WebSocket等
3. **丰富插件生态**:200+内置插件(认证、限流、监控等)
4. **高性能**:单核QPS可达18k,延迟小于0.2ms
5. **云原生友好**:完美兼容Kubernetes、Service Mesh
## 二、环境准备
### 1. 系统要求
- Linux/macOS/Windows(生产环境建议Linux)
- Docker(推荐方式)或裸机安装
- 至少2核CPU/4GB内存
### 2. 快速安装(Docker方式)
```bash
# 启动etcd(APISIX的配置存储)
docker run -d --name etcd \
-p 2379:2379 \
-e ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 \
-e ETCD_ADVERTISE_CLIENT_URLS=http://0.0.0.0:2379 \
bitnami/etcd:latest
# 启动APISIX
docker run -d --name apisix \
-p 9080:9080 -p 9443:9443 \
--link etcd:etcd \
-e APISIX_DEPLOYMENT=traditional \
-e APISIX_ETCD_ENDPOINTS=http://etcd:2379 \
apache/apisix:latest
路由是APISIX最基础的配置单元,示例:
curl http://127.0.0.1:9080/apisix/admin/routes/1 \
-H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' \
-X PUT -d '
{
"uri": "/get",
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}'
定义后端服务集群:
{
"type": "roundrobin",
"nodes": {
"192.168.1.100:8080": 1,
"192.168.1.101:8080": 2
},
"retries": 3
}
可复用的抽象服务:
{
"plugins": {
"limit-count": {
"count": 100,
"time_window": 60
}
},
"upstream": {
"nodes": {
"service-v1.example.com": 1
}
}
}
curl http://127.0.0.1:9080/apisix/admin/routes/1 \
-H 'X-API-KEY: your-admin-key' \
-X PUT -d '
{
"name": "user-service",
"uri": "/users/*",
"plugins": {
"jwt-auth": {}
},
"upstream": {
"nodes": {
"user-service:8080": 1
}
}
}'
"plugins": {
"limit-count": {
"count": 1000,
"time_window": 60,
"key": "remote_addr",
"policy": "local"
}
}
"plugins": {
"ip-restriction": {
"whitelist": ["192.168.0.0/24"],
"message": "Forbidden"
}
}
{
"uri": "/v1/products/*",
"plugins": {
"traffic-split": {
"rules": [
{
"weighted_upstreams": [
{"upstream_id": "1", "weight": 95}, // 旧版本
{"upstream_id": "2", "weight": 5} // 新版本
]
}
]
}
}
}
通过APISIX Ingress Controller实现K8s集成:
apiVersion: apisix.apache.org/v2
kind: ApisixRoute
metadata:
name: product-route
spec:
http:
- name: product-rule
match:
paths: ["/products*"]
backends:
- serviceName: product-service
servicePort: 80
curl http://127.0.0.1:9080/apisix/admin/plugin_configs/1 \
-H 'X-API-KEY: your-admin-key' \
-X PUT -d '
{
"plugins": {
"prometheus": {}
}
}'
apisix_http_requests_total
:总请求量apisix_http_status
:HTTP状态码分布apisix_bandwidth
:进出流量apisix_etcd_reachable
:配置中心健康状态Apache APISIX作为国产API网关的标杆项目,其出色的性能和灵活的扩展能力使其成为微服务架构的理想选择。通过本文的实践指导,您已经掌握了从安装部署到核心功能配置的关键步骤。建议下一步:
提示:生产环境部署建议使用APISIX Dashboard进行可视化管理和配置版本控制。 “`
(全文约1250字,实际可根据具体Markdown渲染器有所变化)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。