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技术,所以不必担心性能问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/22689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【100天精通python】Day26:文件和IO操作_文件指针的定位与移动,序列化与反序列化

目录 专栏导读 1 文件的基本操作 1.1 参考 1.2 获取文件属性: 2 定位和移动文件指针 3 序列化和反序列化 3.1 序列化与反序列化概述 3.2JSON序列化与反序列化 JSON序列化: JSON反序列化: 3.3 pickle 序列化与反序列化 pickle 序列…

Yolov8-pose关键点检测:模型部署篇 | yolov8-pose.onnx python推理

💡💡💡本文解决什么问题:Yolov8-pose关键点训练得到的模型转换成onnx格式在python下完成推理 Yolov8-Pose关键点检测专栏介绍:https://blog.csdn.net/m0_63774211/category_12398833.html ✨✨✨手把手教你从数据标记到生成适合Yolov8-pose的yolo数据集; 🚀🚀�…

vue项目中使用节流throttle 和 防抖debounce

一、节流和防抖的定义 节流:频繁输入、频繁操作的时候,保持一定频率连续触发,比如 scroll 事件、click 事件。 防抖:频繁输入、频繁操作的时候,在最后才触发事件处理函数,比如 input 输入事件。 关于节流…

【前端】鼠标事件计算与圆心形成的角度

在业务需求中,常常出现一些我们无法完成的效果图,这时需要UI切图给我们,而切图后不可避免的一些点击事件无法方便的监听 如该图圆环,其实是一张单独的图片,这种情况下只能通过js判断用户点击、拖动的鼠标位置&#xf…

carla中lka实现(一)

前言: 对于之前项目中工作内容进行总结,使用Carla中的车辆进行lka算法调试,整体技术路线: ①在Carla中生成车辆,并在车辆上搭载camera,通过camera采集图像数据; ②使用图像处理lka算法&#…

Docker-Compose编排与部署(lnmp实例)

第四阶段 时 间:2023年8月3日 参加人:全班人员 内 容: Docker-Compose编排与部署 目录 一、Docker Compose (一)概述 (二)Compose适用于所有环境: (三&#xf…

Docker实战-操作Docker容器实战(二)

导语   上篇分享中,我们介绍了关于如何创建容器、如何启动容器、如何停止容器。这篇我们来分享一下如何操作容器。 如何进入容器 可以通过使用-d参数启动容器后会进入后台运行,用户无法查看容器中的信息,无法对容器中的信息进行操作。 这个时候如果我们需要进入容器对容器…

第十二章 配置Production - 添加HL7序列管理器

文章目录 第十二章 配置Production - 添加HL7序列管理器添加HL7序列管理器创建HL7序列管理器集成和配置 HL7 序列管理器以编程方式访问 HL7 序列数据ApplicationFacilityThreadTypeNextSequenceNumber 第十二章 配置Production - 添加HL7序列管理器 添加HL7序列管理器 HL7消息…

人脸识别场景下Faiss大规模向量检测性能测试评估分析

在前面的两篇博文中,主要是考虑基于之前以往的人脸识别项目经历结合最近使用到的faiss来构建更加高效的检索系统,感兴趣的话可以自行移步阅读即可: 《基于facenetfaiss开发构建人脸识别系统》 Facenet算法的优点:高准确率&#…

HTTP隧道识别与防御:机器学习的解决方案

随着互联网的快速发展,HTTP代理爬虫已成为数据采集的重要工具。然而,随之而来的是恶意爬虫对网络安全和数据隐私的威胁。为了更好地保护网络环境和用户数据,我们进行了基于机器学习的HTTP代理爬虫识别与防御的研究。以增强对HTTP代理爬虫的识…

springboot+vue网红酒店客房预定系统的设计与实现_ui9bt

随着计算机技术发展,计算机系统的应用已延伸到社会的各个领域,大量基于网络的广泛应用给生活带来了十分的便利。所以把网红酒店预定管理与现在网络相结合,利用计算机搭建网红酒店预定系统,实现网红酒店预定的信息化。则对于进一步…

基于ROS的IMU航向锁定(C++)

文章目录 操作流程节点代码 操作流程 1、让nodeHandle发布 /cmd_vel话题; 2、设定一个目标朝向角,当姿态信息中的朝向角和目标朝向角不一致时,控制机器人转向目标朝向角。 节点代码 /***************************************************…

DBeaver安装+连接使用mysql

1、下载Dbeaver 官网:Download | DBeaver Community github:Releases dbeaver/dbeaver (github.com) 这里是在github下载的,下的是23.1.3版本 (根据系统自己选择,这里下的是windows的版本) 2、安装 3、…

单元测试之 - Review一个微服务的单元测试

这里以github上一个microservice的demo代码为例,来看看如何为一个完整的服务编写单元测试。具体代码如下所示,我们重点查看一下catalog和customer,order中的单元测试有哪些。 首先来看catalog服务的单元测试,这个服务下面主要编写了CatalogWe…

物联网|按键实验---学习I/O的输入及中断的编程|函数说明的格式|如何使用CMSIS的延时|读取通过外部中断实现按键捕获代码的实现及分析-学习笔记(14)

文章目录 通过外部中断实现按键捕获代码的实现及分析Tip1:函数说明的格式Tip2:如何使用CMSIS的延时GetTick函数原型stm32f407_intr_handle.c解析中断处理函数:void EXTI4_IRQHandler 调试流程软件模拟调试 两种代码的比较课后作业: 通过外部中断实现按键捕获代码的实…

c++调用ffmpeg api将视频文件内容进行udp推流

代码及工程见https://download.csdn.net/download/daqinzl/88156926 开发工具&#xff1a;visual studio 2019 播放&#xff0c;采用ffmpeg工具集里的ffplay.exe, 执行命令 ffplay udp://238.1.1.10:6016 主要代码如下: #include "pch.h" #include <iostream&g…

5G网络在中国已经普及了,政策支持加大5G投入力度,这意味着什么呢?

5G网络是新型基础设施的重要组成部分&#xff0c;中国5G商用牌照已发放四年多&#xff0c;目前发展得怎样了&#xff1f;最近&#xff0c;官方公布了最新数据&#xff0c;截至7月底&#xff0c;中国5G移动电话用户已达7亿户&#xff0c;5G基站累计达到293.7万个&#xff0c;5G覆…

【perl】报错合集

perl报错合集 &#xff08;注&#xff1a;可能会不定时更新&#xff09; 1.Name “main::x” used only once: possible typo at … 1.Name "main::x" used only once: possible typo at ...给某个变量赋值但是从来没有用它&#xff0c;或者变量之只用一次但没有…

MobPush iOS SDK iOS实时活动

开发工具&#xff1a;Xcode 功能需要: SwiftUI实现UI页面&#xff0c;iOS16.1以上系统使用 功能使用: 需应用为启动状态 功能说明 iOS16.1 系统支持实时活动功能&#xff0c;可以在锁定屏幕上实时获知各种事情的进展&#xff0c;MobPushSDK iOS 4.0.3版本已完成适配&#xf…

使用手机相机检测电脑屏幕刷新率Hz

使用手机相机检测电脑屏幕刷新率Hz 1、电脑打开https://www.testufo.com/frameskipping 2、相机专业模式&#xff1a;快门1/10、ISO自动&#xff0c;拍摄一张照片。120Hz至少要有12个亮块&#xff0c;50Hz至少有6个亮块。 更改刷新速率 1、选择 “开始>设置>系统>显示…