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

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

相关推荐
切糕师学AI26 分钟前
ARM 架构中的数据内存屏障指令 DMB
arm开发·架构·指令·内存屏障
Geoking.1 小时前
技术考古:去IOE
云原生
惟恋惜2 小时前
Jetpack Compose 多页面架构实战:从 Splash 到底部导航,每个 Tab 拥有独立 ViewModel
android·ui·架构·android jetpack
毕设源码-郭学长2 小时前
【开题答辩全过程】以 基于微服务的网络运维管理系统设计与实现为例,包含答辩的问题和答案
运维·网络·微服务
湘-枫叶情缘3 小时前
BIZBOK®指南入门教案:框架全景理解与知识地图构建
架构
云舟吖3 小时前
Open-AutoGLM 部署指南:本地大模型控制 Android 手机自动化
架构
踏浪无痕3 小时前
自定义 ClassLoader 动态加载:不重启就能加载新代码?
后端·面试·架构
踏浪无痕3 小时前
别重蹈我们的覆辙:脚本引擎选错的两年代价
后端·面试·架构
狂胤3 小时前
告别“CV工程师”:手把手教你设计一套 B 端低代码 DSL
架构
喷火龙8号3 小时前
JWT 认证方案深度对比:单 Token 扩展刷新 vs 双 Token 验证
后端·设计模式·架构