厌倦了写网关的无聊胶水代码,我们造了一个动态热更新的聚合网关的轮子

2020-10-18 15:41:44 +08:00
 jiansihun

以前每次开一个项目,我们就做一个应用网关,做得多大伙就厌倦了,造起了新的轮子,现在轮子造好了,推荐给各位试试看看能否节省大家的时间。

infoQ 编辑做的文章服务器减少 50%,研发效率提高 86%,我们的管理型网关 Fizz 自研之路

大家也可以在实践里面参考一下 ,github 链接

A Managerment API Gateway in Java . Fizz Gateway 是一个基于 Java 开发的微服务网关,能够实现热服务编排、自动授权选择、线上服务脚本编码、在线测试、高性能路由、API 审核管理等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行 API 服务治理、减少中间层胶水代码以及降低编码投入、提高 API 服务的稳定性和安全性。

Fizz 的设计

产品特性

  • 集群管理:Fizz 网关节点是无状态的,配置信息自动同步,支持节点水平拓展和多集群部署。
  • 服务编排:支持热服务编排能力,支持前后端编码,随时随地更新 API 。
  • 负载均衡:支持 round-robin 负载均衡。
  • 服务发现:支持从 Eureka 注册中心发现后端服务器。
  • 配置中心:支持接入 apollo 配置中心。
  • HTTP 反向代理:隐藏真实后端服务,支持 Rest API 反向代理。
  • 访问策略:支持不同策略访问不同的 API 、配置不同的鉴权等。
  • IP 黑白名单:支持配置 IP 黑白名单。
  • 自定义插件:强大的插件机制支持自由扩展。
  • 可扩展:简单易用的插件机制方便扩展功能。
  • 高性能:性能在众多网关之中表现优异。
  • 版本控制:支持操作的发布和多次回滚。
  • 管理后台:通过管理后台界面对网关集群进行各项配置。

基准测试

我们将 Fizz 与 Spring 官方 spring-cloud-gateway 进行比较,使用相同的环境和条件,测试对象均为单个节点。

  • Intel(R) Xeon(R) CPU X5675 @ 3.07GHz * 4
  • Linux version 3.10.0-327.el7.x86_64
  • 8G RAM

| 产品 | QPS | 90% Latency(ms) | | :------------------: | ------- | -------------------- | | 直接访问后端服务 | 9087.46 | 10.76 | | fizz-gateway | 5927.13 | 19.86 | | spring-cloud-gateway | 5044.04 | 22.91 |

部署说明

部署教程

2649 次点击
所在节点    分享创造
3 条回复
jiansihun
2020-10-20 10:21:51 +08:00
如果要技术支持或者询问技术问题,可以加 q & q 群:512164278 。
jiansihun
2020-11-10 10:08:57 +08:00
Fizz Gateway 1.1.1 版本发布!支持更多方便的后台管理功能特性:

1 、禁止 default 网关分组的编辑删除;
2 、修改插件配置时同时向网关推送数据;
3 、限制插件名称唯一,网关分组、插件名称、增加 appID 字段长度限制;
4 、修复插件管理校验 bug,插件表单定义可为空;
5 、增加路由管理详情字段必填标记;
6 、修复管理后台路由配置的 app 为空时, 授权插件无法获取此路由配置的问题;
7 、默认关闭服务白名单;
jiansihun
2020-11-25 11:22:59 +08:00
Fizz Gateway 1.2.0 已经发布,此版本更新内容:

支持 Nacos 注册中心和配置中心
支持不使用注册中心以及设置 Eureka 为可选依赖
支持接口统计
支持在服务编排里配置重定向
支持在 Windows 通过脚本直接启动管理后台
输出服务编排脚本异常信息
增加内置默认脚本 common.js
修复因数据库区分大小写导致后台启动报错问题
修复路由管理功能 API 按后端服务转发 URL 重复时数据异常

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/716118

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX