Fizz Gateway 2.6.6 发布,聚合高并发问题修复
v2.6.6
changelog:
修复服务编排步骤中并发处理接口响应结果的问题
修复异常数量包含4xx错误的问题
修复获取IP时取到本地IP的问题
修复MD5验签方式没有校验时间戳的问题
支持Redis集群
Fix concurrent processing issue of multiple requests of aggregation step
Fix the issue that the number of exceptions contains 4xx errors
Fix the issue that a local IP address is obtained while obtaining server IP
Fix the issue that MD5 signature does not check the timestamp
Support configuring Redis cluster
Fizz Gateway是什么?
An Aggregation API Gateway in Java . Fizz Gateway 是一个基于 Java开发的微服务聚合网关,是拥有自主知识产权的应用网关国产化替代方案,能够实现热服务编排聚合、自动授权选择、线上服务脚本编码、在线测试、高性能路由、API审核管理、回调管理等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行API服务治理、减少中间层胶水代码以及降低编码投入、提高 API 服务的稳定性和安全性。
演示环境(Demo)
账号/密码:admin
/Aa123!
健康检查地址:http://demo.fizzgate.com/admin/health (线上版本请限制admin路径的外网访问)
API地址:http://demo.fizzgate.com/proxy/[服务名]/[API_Path]
Fizz的设计
Fizz典型应用场景
产品特性
- 集群管理:Fizz网关节点是无状态的,配置信息自动同步,支持节点水平拓展和多集群部署。
- 安全授权:支持内置的key-auth, JWT, basic-auth授权方式,并且可以方便控制。
- 服务编排:支持HTTP、Dubbo、gRPC、Soap协议热服务编排能力,支持前后端编码,支持JSON/XML输出,随时随地更新API。
- 负载均衡:支持round-robin负载均衡。
- 多注册中心:支持从Eureka或Nacos注册中心进行服务发现。
- 配置中心:支持接入apollo配置中心。
- HTTP反向代理:隐藏真实后端服务,支持 Rest API反向代理。
- 访问策略:支持不同策略访问不同的API、配置不同的鉴权等。
- IP黑白名单:支持配置IP黑白名单。
- 自定义插件:强大的插件机制支持自由扩展。
- 可扩展:简单易用的插件机制方便扩展功能。
- 高性能:性能在众多网关之中表现优异。
- 版本控制:支持操作的发布和多次回滚。
- 管理后台:通过管理后台界面对网关集群进行各项配置。
- 回调管理:支持回调的管理、订阅、重放、以及日志。
- 多级限流:细颗粒度的限流方式包含服务限流,接口限流,APP_ID限流,IP限流。
- 微服务文档:企业级管理开放微服务文档管理,系统集成更方便。
- 公网专线:建立公网中受到完全保护的私有连接通道。
- 策略熔断:根据服务或者具体地址进行多种恢复策略熔断配置。
基准测试
我们将Fizz与市面上主要的网关产品进行比较,使用相同的环境和条件,测试对象均为单个节点。Mock接口模拟20ms时延,报文大小约2K。
- Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz * 4
- Linux version 3.10.0-957.21.3.el7.x86_64
- 8G RAM
分类 | 产品 | 600并发 QPS | 600并发 90% Latency(ms) | 1000并发 QPS | 1000并发 90% Latency(ms) |
---|---|---|---|---|---|
后端服务 | 直接访问后端服务 | 23540 | 32.19 | 27325 | 52.09 |
流量网关 | kong v2.4.1 | 15662 | 50.87 | 17152 | 84.3 |
应用网关 | fizz-gateway-community v2.0.0 | 12206 | 65.76 | 12766 | 100.34 |
应用网关 | spring-cloud-gateway v2.2.9 | 11323 | 68.57 | 10472 | 127.59 |
应用网关 | shenyu v2.3.0 | 9284 | 92.98 | 9939 | 148.61 |
版本对照
Fizz-gateway-community: 社区版
Fizz-manager-professional:管理后台专业版(服务端)
Fizz-admin-professional:管理后台专业版(前端)
Fizz-gateway-community | Fizz-manager-professional | Fizz-admin-professional |
---|---|---|
v1.0.0 | v1.0.0 | v1.0.0 |
v1.1.0 | v1.1.0 | v1.1.0 |
v1.1.1 | v1.1.1 | v1.1.1 |
v1.2.0 | v1.2.0 | v1.2.0 |
从v1.3.0开始管理后台的前端和服务端合并成一个包
Fizz-gateway-community: 社区版
Fizz-manager-professional:管理后台
Fizz-gateway-community | Fizz-manager-professional |
---|---|
v1.3.0 | v1.3.0 |
v1.4.0 | v1.4.0 |
v1.4.1 | v1.4.1 |
v1.5.0 | v1.5.0 |
v1.5.1 | v1.5.1 |
v2.0.0 | v2.0.0 |
v2.1.0 | v2.1.0 |
v2.2.0 | v2.2.0 |
v2.2.1 | v2.2.1 |
v2.2.3 | v2.2.3 |
v2.3.0 | v2.3.0 |
v2.3.2 | v2.3.2 |
v2.3.3 | v2.3.3 |
v2.4.0 | v2.4.0 |
v2.4.1 | v2.4.1 |
v2.5.0 | v2.5.0 |
v2.5.1 | v2.5.1 |
v2.5.2 | v2.5.2 |
v2.6.0 | v2.6.0 |
v2.6.1 | v2.6.1 |
v2.6.2 | v2.6.2 |
v2.6.3 | v2.6.3 |
v2.6.4 | v2.6.4 |
v2.6.5 | v2.6.5 |
v2.6.6 | v2.6.6 |
请根据社区版的版本下载对应的管理后台版本
部署说明
安装依赖
安装以下依赖软件:
- Redis 2.8或以上版本
- MySQL 5.7或以上版本
- Apollo配置中心 (可选)
- Eureka或Nacos服务注册中心(可选)
依赖的安装可参考详细部署教程
安装Fizz
一、安装管理后台
从github的releases(https://wj.qq.com/s2/8682608/8fe2/) 下载 fizz-manager-professional 安装包
管理后台(fizz-manager-professional)
说明:
- 以下安装步骤出现的
{version}
表示所使用管理后台的版本号,例如1.3.0
。
安装方式一:二进制安装包
- 解压
fizz-manager-professional-{version}.zip
安装包 - 首次安装执行
fizz-manager-professional-{version}-mysql.sql
数据库脚本,从低版本升级至高版本选择执行update目录下对应升级脚本 - 修改
application-prod.yml
文件,将相关配置修改成部署环境的配置 - Linux启动 执行
chmod +x boot.sh
命令给boot.sh
增加执行权限;执行./boot.sh start
命令启动服务,支持 start/stop/restart/status命令 - Windows启动 执行
.\boot.cmd start
命令启动服务,支持 start/stop/restart/status命令
安装方式二(v2.0.0或以上版本):docker:
- 下载对应版本的镜像:docker pull fizzgate/fizz-manager-professional:{version}
- 通过环境变量方式修改redis配置、database配置(其它配置同理)并运行镜像
docker run --rm -d -p 8000:8000 \ -e "spring.redis.host={your redis host IP}" \ -e "spring.redis.port={your redis port}" \ -e "spring.redis.password={your redis password}" \ -e "spring.redis.database={your redis database}" \ -e "spring.datasource.url=jdbc:mysql://{your MySQL database host IP}:3306/fizz_manager?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true" \ -e "spring.datasource.username={your MySQL database username}" \ -e "spring.datasource.password={your MySQL database password}" \ fizzgate/fizz-manager-professional:{version}
或通过映射目录方式使用外部配置文件和输出日志到宿主机, 配置文件可从安装包里获取,在宿主机创建fizz-manager-professional/config和fizz-manager-professional/logs目录,把application-prod.yml配置文件放置config下,在fizz-manager-professional目录下运行镜像
cd fizz-manager-professional docker run --rm -d -p 8000:8000 \ -v $PWD/config:/opt/fizz-manager-professional/config \ -v $PWD/logs:/opt/fizz-manager-professional/logs fizzgate/fizz-manager-professional:{version}
服务启动后访问 http://{部署机器IP地址}:8000/#/login,使用超级管理员账户admin
密码Aa123!
登录
二、安装fizz-gateway-community社区版
说明:
- 支持配置中心:apollo、nacos,支持注册中心:eureka、nacos,详细配置方法查看application.yml文件。
- 如果使用apollo配置中心,可把application.yml文件内容迁到配置中心(apollo上应用名为:fizz-gateway);如果不使用apollo可去掉下面启动命令里的apollo参数。
- 以下安装步骤出现的
{version}
表示所使用网关的版本号,例如1.3.0
。
安装方式一:二进制安装包
- 下载fizz-gateway-community的二进制安装包,解压修改application.yml配置文件里配置中心、注册中心、redis(redis配置需与管理后台一致)的配置
- 根据需要修改boot.sh脚本的apollo连接,不使用apollo配置中心可跳过
- Linux启动 执行
./boot.sh start
命令启动服务,支持 start/stop/restart/status命令 - Windows启动 执行
.\boot.cmd start
命令启动服务,支持 start/stop/restart/status命令
安装方式二:源码安装:
- 本地clone仓库上的最新代码,修改application.yml配置文件里配置中心、注册中心、redis(redis配置需与管理后台一致)的配置
- 在项目根目录fizz-gateway-community下执行Maven命令
mvn clean package install -DskipTests=true
- 在项目目录fizz-gateway-community/fizz-bootstrap下执行Maven命令
mvn clean package -DskipTests=true
- 进入fizz-gateway-community/fizz-bootstrap/target/fizz-gateway-community目录,执行
./boot.sh start
命令启动服务,支持 start/stop/restart/status命令
安装方式三(v2.0.0或以上版本):docker:
- 下载对应版本的镜像:docker pull fizzgate/fizz-gateway-community:{version}
- 通过环境变量方式修改redis配置(其它配置同理)并运行镜像
docker run --rm -d -p 8600:8600 \ -e "aggregate.redis.host={your redis host IP}" \ -e "aggregate.redis.port={your redis port}" \ -e "aggregate.redis.password={your redis password}" \ -e "aggregate.redis.database={your redis database}" \ fizzgate/fizz-gateway-community:{version}
或通过映射目录方式使用外部配置文件和输出日志到宿主机, 配置文件可从安装包或源码里获取,在宿主机创建fizz-gateway-community/config和fizz-gateway-community/logs目录,把application.yml和log4j2-spring.xml配置文件放置config下,在fizz-gateway-community目录下运行镜像
cd fizz-gateway-community docker run --rm -d -p 8600:8600 \ -v $PWD/config:/opt/fizz-gateway-community/config \ -v $PWD/logs:/opt/fizz-gateway-community/logs fizzgate/fizz-gateway-community:{version}
最后访问网关,地址形式为:http://127.0.0.1:8600/proxy/[服务名]/[API_Path]
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Yank Note v3.32.0:增加 Reveal.js 扩展,用 Markdown 做 PPT
应用介绍 Yank Note 是一款面向程序员的本地 Markdown 笔记应用。支持在文档中嵌入可运行的代码块、思维导图以及各种图形 (Drawio、Mermaid、Plantuml),支持插件拓展、文档历史版本回溯。 Yank Note 非常适合程序员群体,针对下面的场景具有和其他笔记工具不一样的体验: 做技术笔记:可直接在文档中运行代码块(天然支持 JS 代码,其他语言需配置环境),让笔记生动起来。 编写辅助工具:可在文档中嵌入 HTML 组件来制作一些辅助工具,甚至你可以使用Markdown 遥控无人机:) 写技术方案和文章:支持嵌入多种图形(思维导图、Plantunl、Drawio、Mermaid 、ECharts ),写文档画图形一气呵成。 记录工作日志:支持任务代办列表,使用 “宏替换” 功能可以方便生成日报周报。 v3.32.0 更新记录 本次更新亮点:扩展中心新增 “Reveal.js” 扩展,现在你可以使用 Yank Note 做幻灯片演示了。感谢Reveal.js 更新详情: feat: 状态栏菜单增加“导出”、“打印”菜单项 feat: 打开终端默认切换到当前仓...
- 下一篇
「更新售价」System76 推出 65% 配列的开源机械键盘
7 月 15 日更新售价信息:System76 已公布 Launch Lite 售价为 199 美元,如果用户选择了更长的保修时间和更快的发货速度则需要在 199 美元的基础上额外加钱。 以开发了 Pop!_OS 发行版和销售 Linux 硬件闻名的 System76 近日宣布将推出新款可配置的机械键盘 —— Launch Lite,该键盘将于 7 月 14 日开始预售。 从命名上也能看出,Launch Lite 是 System76 在一年多以前推出的 Launch 可配置键盘的轻量版。通过对比也可以发现,System76 之前推出的 Launch 键盘采用的是 75% 的键盘配列(下图),而新款 Launch Lite 采用的是更小巧的 65% 配列(上图),两者在外观上的主要差异就是 Launch Lite 将键盘顶部的功能键区域和数字键区域整合在了一起。 因此 Launch Lite 在 Launch 舒适、可配置的基础上,还将便携作为另一个主要卖点。 Launch Lite 完整技术规格: 底板: System76 开源的铣削底板设计 可拆卸的支脚,可将键盘角度调整 15 度...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7设置SWAP分区,小内存服务器的救世主
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 2048小游戏-低调大师作品
- Red5直播服务器,属于Java语言的直播服务器