微服务API网关---APISIX

最近在做微服务调研,看到了apisix这个网关,于是进行了初步了解一下。

微服务是指,将大型应用分解成多个独立的组件,其中每个组件都各自的负责对应项目。

系统的架构大致经历了:单体应用架构--> SOA架构 -->微服务架构的演变。随着业务发展,API的数量也在剧增,使用网关对API统一管理也将面临挑战,选择一个更强大的API网关,可以有效的增强系统的监控、容灾、鉴权和限流等能力。

API网关是什么?

为客户端与服务系统之间的交互提供统一的接口,也是管理请求和响应的中心点,选择一个合适的API网关,可以有效地简化开发并提高系统的运维与管理效率。API网关作为一个系统访问的切面,对外提供统一的入口访问,隐藏系统架构实现的细节,让微服务使用更为友好;并集成了通用特性,鉴权,限流,熔断,避免每个微服务单独开发,提升效率,使系统更加标准化,单独注重业务。

进入正文,今天主要了解APISIX网关。

APISIX是一个动态、实时、高性能的云原生API网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。可以使用 Apache APISIX 处理传统的南北向流量,也可以处理服务间的东西向流量。

架构主要分为两部分:

第一部分叫做数据面,它是真正去处理客户端请求的组件,去处理用户的真实流量,包括像身份验证、证书卸载、日志分析和可观测性等功能。 不会存储数据。

第二部分是控制面,使用的etcd存储,数据面监听etcd变化即可。

APISIX的主要概念和组件
Route【路由】 : 通过路由定义规则来匹配客户端请求,根据匹配结果加载并执行相应的插件,最后把请求转发给指定的上游服务。
Upstream【上游】:按照配置规则对服务节点进行负载均衡,它的地址信息可以直接配置到路由或服务上。

入门安装

1.先安装apisix

2.再安装apisix dashboard

在这里进行路由和上游的配置即可进行简单的网关。

方式一,直接进行路由配置:

配置名称和路径

然后配置服务

进行提交,即可完成一个完整的服务路由转发。

我们通过postman进行测试

方式二,也可以先配置好上游

配置好后,在路由的时候选择服务即可。两者功能一致。

https://httpbin.org/#/Anything/get_anything,是apisix官方提供的测试服务,用于测试我们是否配置路由成功。

还可以进行服务注册,在选服务的时候,选择服务类型,就可以勾选nacos,eureka等。便于大型公司技术栈没有统一的使用场景

使用nacos的话,需要在apisix的配置文件 conf/config.yaml中添加nacos配置

discovery:

nacos:

host:

‐ "http:// u s e r n a m e : {username}: username:{password}@ h o s t 1 : {host1}: host1:{port1}"

以上就是简单的入门apisix功能。

后续的一些插件功能,比如限流,黑白名单之类都是插件实现。

相关推荐
VermiliEiz3 分钟前
二进制文件部署k8s方式(5)
云原生·容器·kubernetes
小小工匠28 分钟前
LLM - 从定制化 Agent 到 Universal Agent + Skills Library:下一代智能体架构实践
架构·定制化agent·universal agent·skill library
neoooo1 小时前
🍃Spring Boot 多模块项目中 Parent / BOM / Starter 的正确分工
java·后端·架构
菜鸟的迷茫1 小时前
为了防雪崩加了限流,结果入口先挂了
java·后端·架构
No芒柠Exception1 小时前
从开发到上线的CI/CD 完整流程
后端·面试·架构
释怀不想释怀1 小时前
3.3 DockerCompose(快速部署)
云原生·eureka
攀登的牵牛花2 小时前
前端向架构突围系列 - 框架设计(四):依赖倒置原则(DIP)
前端·架构
indexsunny2 小时前
互联网大厂Java面试实战:Spring Boot与微服务在电商场景的应用解析
java·spring boot·redis·微服务·kafka·gradle·maven
lizhongxuan2 小时前
Manus: 上下文工程的最佳实践
算法·架构
小酒星小杜2 小时前
在AI时代,技术人应该每天都要花两小时来构建一个自身的构建系统-Input篇
前端·程序员·架构