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

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

相关推荐
阿里云云原生18 分钟前
【代码实践】无需复杂正则!阿里云SLS一键搞定日志脱敏,告别隐私数据“裸奔”!
云原生
喵了几个咪1 小时前
Golang微服务框架Kratos应用分布式任务队列Machinery
分布式·微服务·golang
心灵宝贝2 小时前
申威SW64系统安装docker-ce-19.03.14.rpm详细教程(附安装包)
云原生·eureka
梁萌2 小时前
缓存高可用架构-读缓存
redis·缓存·架构·高可用架构·读缓存
2501_941148153 小时前
云计算与容器技术在企业IT架构优化与高可用系统建设中的创新应用研究
架构·云计算
一只会写代码的猫3 小时前
当分布式协同成为主流应用架构时系统可信计算将面临的新挑战与革新方向
分布式·架构
AutoMQ3 小时前
AutoMQ 与 Tigris 宣布达成战略合作
云原生·架构
小坏讲微服务5 小时前
Docker Compose搭建Git仓库私服上传微服务
分布式·git·docker·微服务·容器·springcloud·springalibaba
拾忆,想起5 小时前
Dubbo核心架构全解析:构建微服务通信的高速公路
java·微服务·云原生·架构·dubbo·哈希算法
wa的一声哭了6 小时前
WeBASE管理平台部署-WeBASE-Web
linux·前端·网络·arm开发·spring boot·架构·区块链