简介
HXAPIGate是我最新开源的专门针对非springcloud家族的REST微服务的一款高性能网关,性能比Zuul更加优秀,依赖少,不依赖spring!
HXAPIGate(中文名:浩心API网关)由HXAPIGate、bootshiroPro组成。
HXAPIGate基于Netty+Shiro开发的一款高性能API网关,对基于REST服务的细粒度API资源的权限管理平台,bootshiroPro是授权管理平台,提供了注册、登录、授权等
项目地址
https://gitee.com/willbeahero/HXAPIGate
项目文档
项目文档请参加项目的Wiki,里面会介绍项目的使用方法已经路由的配置方法等信息。如果觉得项目不错,别忘了给个star!谢谢!
软件特色
目前多数授权管理平台都只单单对api路径资源本身授权,而不能做到更细粒度的权限控制,HXAPIGate通过组合bootshiroPro实现了对“api资源+请求方式”的授权模式。
如:
新增如下四个接口
接口路径 | 请求方式 |
---|---|
“/user/list” | GET |
“/user/list” | POST |
“/user/list” | DELETE |
“/user/list” | PUT |
传统授权模式下,这四个接口会被当做一个接口(因为接口路径一致)授权给第三方,而通过HXAPIGate可分别对每个资源进行授权,当仅仅授权“/user/list”+“GET”给第三方平台时,被授权放无法访问同一资源的POST、DELETE、PUT请求当时的接口!
MECHA–机甲
浩心网关是微服务思想结合mecha 思想落地的产物。如下图所示,描述微服务与浩心网关的关系,内部浅绿色区域为业务相关微服务区,浩心网关所在区域为外部分布式特性区域,
由图可知,微服务不需要考虑任何分布式特性,更不需要在服务的生命周期中引入与业务功能不相关的任何第三方分
布式组件特性(典型如spring cloud全家桶),当一个业务微服务单元发布之后,浩心网关会直接赋予该服务所有分
布式组件特性。当然大家如果了解过service mesh,就会发现与其有神似之处,未来将浩心网关打造成一款工业级sidecar,
也是我希望的能够达到的目标之一。
授权认证时序图
性能
2000并发事务压测报告(jdk1.8,jvm堆内存512M)
操作演示
首页(用户名密码为:admin/123456)
新增接口类别
接口类别管理==项目管理,是一类API接口的集合
新增接口
管理API接口,对API接口的基本信息(路由、负载策略、协议类型等等)进行管理
新增接口功能截图:
接口授权
以角色为桥梁,分别对用户、API接口进行授权
目前网关已实现功能
- 授权、鉴权管理
- 路由配置
- 路由负载(轮寻和赋权值)
- HTTP、dubbo多协议协议
- 接口分布式限流
- 金丝雀发布
- 接口熔断