V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
jiansihun
V2EX  ›  分享创造

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

  •  
  •   jiansihun ·
    linwaiwai · 2020-10-18 15:41:44 +08:00 · 2824 次点击
    这是一个创建于 1496 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    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 |

    部署说明

    部署教程

    3 条回复    2020-11-25 11:22:59 +08:00
    jiansihun
        1
    jiansihun  
    OP
       2020-10-20 10:21:51 +08:00
    如果要技术支持或者询问技术问题,可以加 q & q 群:512164278 。
    jiansihun
        2
    jiansihun  
    OP
       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
        3
    jiansihun  
    OP
       2020-11-25 11:22:59 +08:00
    Fizz Gateway 1.2.0 已经发布,此版本更新内容:

    支持 Nacos 注册中心和配置中心
    支持不使用注册中心以及设置 Eureka 为可选依赖
    支持接口统计
    支持在服务编排里配置重定向
    支持在 Windows 通过脚本直接启动管理后台
    输出服务编排脚本异常信息
    增加内置默认脚本 common.js
    修复因数据库区分大小写导致后台启动报错问题
    修复路由管理功能 API 按后端服务转发 URL 重复时数据异常
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 03:30 · PVG 11:30 · LAX 19:30 · JFK 22:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.