VX-API-Gateway开源网关技术的使用记录

VX-API-Gateway开源网关技术的使用记录

官网地址 https://mirren.gitee.io/vx-api-gateway-doc/

复制代码
VX-API-Gateway(以下称为VX-API)是基于Vert.x (java)开发的
API网关,
是一个分布式、全异步、高性能、可扩展、轻量级的可视化配置的API网关服务

官网下载程序zip包

访问 https://gitee.com/mirren/VX-API-Gateway/releases

下载最新的程序zip包

安装和使用

找个目录解压程序包

启动程序bin目录里的start.bat或start.sh


浏览器访问5256端口

点击进入首页后,会进入

http://localhost:5256/static/Application.html

提示要登录,默认账号是VXAdmin,密码是hivx

登录密码在安装目录的conf下的user.json中配置

登录后可以新建应用

复制代码
新建应用是指 你的vx-api-gateway网关要对接的服务名或应用名以及相关信息配置

创建应用



vx网关代理的http参数设置,都可以不填,会自动使用默认参数设置,(如需修改可以按需填写)

应用创建好后,可以在应用列表中看到

创建应用下的API代理

点击API管理,可以在刚刚建的应用上创建API

创建一个get请求代理

复制代码
目标:访问/sgate/t1 后自动代理到真实后端的/demo/t1




代理API的的返回结果配置不用特别修改,默认会自动返回后端真实API的数据

创建完成后,可以在api列表里看到

最后,要启用刚刚建的应用和应用下的API代理

在应用详情页面点击启动应用

在API详情页面点击启动某个API代理

启动完成后,点击运行状态页面,可以观察到当前vx-api-gateway的运行状态

最后可以使用postman测试是否代理成功

访问

http://127.0.0.1:8330/sgate/t1

自动代理到真实后端的

http://127.0.0.1:8085/demo/t1

返回后端真实服务接口的数据

实测发现可以代理成功,请求耗时188ms

在API详情页也可以看到相关的网关日志如下

VX-API-Gateway技术架构

应用Application

复制代码
应用可以理解为分组,是VX-AP中的一个运行单元,一个应用相当于一个服务器(Server)不同的是他的端口号允许被重复使用,也就是说在VX-API中一个端口号可以给任意应用绑定(前提是这个端口号没有被别的程序绑定),应用用于管理API
访问http://localhost:端口号(默认5256)/static/Application.html或者通过http://localhost:端口号(默认5256)进入后便可以查看与管理应用

API接口

复制代码
API是VX-API的服务核心,创建应用后便可以在应用的API管理中创建API;
当前版本中API支持三种服务类型,
HTTP/HTTPS服务(既VX-API需要去请到后台服务器的类型):参数检查与透传,支持带权重的负载均衡访问策略,轮询与IP哈希化,自动断路与重试不可用的后台服务地址
页面跳转服务:当用户访问时redirect到指定页面
自定义服务:可以自定义任意服务,当前版本中实现了,基于session-token的认证授权,获取服务器时间戳,与获取常量
同时API支持全局黑名单,流量限制,权限认证,自定义前置/后置处理器等

API的执行流程

绿线代表一定会执行,黑线代表当存在时执行,当用户请求的时候,完整的流程按组件顺序由1开始执行到7,如果不满足任意一个组件时请求结束并响应(fail-end-response),当任意组件出现异常时统一进入异常组件(Exception Handler)请求结束并响应错误信息

更多API的执行流程介绍参考下方API组件介绍

总结

复制代码
VX-API-Gateway 是一个轻量的,支持可视化配置的网关代理服务。
可以代理多个后端应用,同时可以对每个后端应用的API做精细化的API代理配置。
由于VX-API-Gateway 底层使用的是vert.x技术,所以不必担心性能问题
相关推荐
LunarCod9 小时前
Ubuntu使用Docker搭建SonarQube企业版(含破解方法)
linux·运维·服务器·ubuntu·docker·开源·sonarqube
无心水13 小时前
【程序员AI入门:模型】19.开源模型工程化全攻略:从选型部署到高效集成,LangChain与One-API双剑合璧
人工智能·langchain·开源·ai入门·程序员ai开发入门·程序员的 ai 开发第一课·程序员ai入门
zkmall13 小时前
商业架构 2.0 时代:ZKmall开源商城前瞻性设计如何让 B2B2C 平台领先同行 10 年?
架构·开源
zkmall18 小时前
Java + 鸿蒙双引擎:ZKmall开源商城如何定义下一代B2C商城技术标准?
java·开源·harmonyos
说私域19 小时前
基于开源链动2+1模式AI智能名片S2B2C商城小程序的低集中度市场运营策略研究
人工智能·小程序·开源·零售
charles_vaez20 小时前
开源模型应用落地-模型上下文协议(MCP)-Resources-资源的使用逻辑
深度学习·语言模型·自然语言处理·开源
一个没有感情的程序猿20 小时前
当 PyIceberg 和 DuckDB 遇见 AWS S3 Tables:打造 Serverless 数据湖“开源梦幻组合”
开源·serverless·aws
yzx99101320 小时前
Gensim 是一个专为 Python 设计的开源库
开发语言·python·开源
时序数据说21 小时前
IoTDB集群的一键启停功能详解
大数据·数据库·开源·时序数据库·iotdb
小众AI21 小时前
Suna: 开源多面手 AI 代理
人工智能·开源