微服务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功能。

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

相关推荐
孟健12 小时前
LLM API 安全防线:从 OpenCode 盗刷事件到 LiteLLM 多模型容灾实操
人工智能·后端·架构
smallyoung13 小时前
告别N+1:Spring Boot 一键数据翻译框架体系
java·后端·架构
第404号工位15 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
Thneonl15 小时前
你写的 NetworkPolicy 可能一条都没生效
后端·架构
96245617 小时前
Go EVM 链上数据平台实践:从 RPC Demo 到可演进架构
rpc·架构·golang
考拉讲支付17 小时前
母婴亲子服务平台分账架构设计:多场景多方分账与合规清结算实践
大数据·运维·人工智能·微信小程序·架构·微信公众平台
黄俊懿18 小时前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构
行者全栈架构师18 小时前
【鸿蒙心迹】互动卡片全链路——把核心功能放到桌面(FormKit 实战)(HarmonyOS 7.x)
前端·算法·架构
海带紫菜菠萝汤18 小时前
PostgreSQL 19 延期一个月:AI 把找 bug 变便宜了,修 bug 还是人工价
人工智能·ai·程序员·架构·大模型
Thneonl18 小时前
主从延迟 0 秒的谎言:SBM 的三个盲区
后端·架构