Files
fizz-gateway-node/README.md
2020-11-02 14:41:07 +08:00

199 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<h1 align="center">Welcome to Fizz Gateway</h1>
<p>
<img alt="Version" src="https://img.shields.io/badge/version-1.0.0-blue.svg?cacheSeconds=2592000" />
<a href="https://wehotel.github.io/fizz-gateway-community/" target="_blank">
<img alt="Documentation" src="https://img.shields.io/badge/documentation-yes-brightgreen.svg" />
</a>
<a href="#" target="_blank">
<img alt="License: GPL--3.0" src="https://img.shields.io/badge/License-GPL--3.0-yellow.svg" />
</a>
<a href="https://github.com/wehotel/fizz-gateway-community/actions" target="_blank">
<img alt="Java CI with Maven" src="https://github.com/wehotel/fizz-gateway-community/workflows/Java%20CI%20with%20Maven/badge.svg?branch=master" />
</a>
</p>
- **最新QQ交流群**: 512164278
Fizz Gateway是什么
A Managerment API Gateway in Java . Fizz Gateway 是一个基于 Java开发的微服务网关能够实现热服务编排、自动授权选择、线上服务脚本编码、在线测试、高性能路由、API审核管理等目的拥有强大的自定义插件系统可以自行扩展并且提供友好的图形化配置界面能够快速帮助企业进行API服务治理、减少中间层胶水代码以及降低编码投入、提高 API 服务的稳定性和安全性。
## Fizz的设计
<img width="500" src="https://user-images.githubusercontent.com/184315/97130741-33a90d80-177d-11eb-8680-f589a36e44b3.png" />
## 产品特性
- 集群管理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 |
## 版本对照
- 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 |
请根据社区版的版本下载对应的管理后台版本
## 部署说明
[详细部署教程>>>](https://wehotel.github.io/fizz-gateway-community/guide/installation/)
### 安装依赖
安装以下依赖软件:
- Redis 2.8或以上版本
- MySQL 5.7或以上版本
- Apollo配置中心 (可选)
- Eureka服务注册中心
依赖的安装可参考详细部署教程
### 安装Fizz
#### 一、安装管理后台
从github的releases(https://github.com/wehotel/fizz-gateway-community/releases) 下载 fizz-manager-professional 和 fizz-admin-professional 的安装包
##### 管理后台服务端fizz-manager-professional
1. 首次安装执行`fizz-manager-professional-1.1.0-mysql.sql`数据库脚本
2.`application-prod.yml``boot.sh``fizz-manager-professional-1.1.0.jar`拷贝到`/data/webapps/fizz-manager-professional`目录下
3. 修改`application-prod.yml`文件,将相关配置修改成部署环境的配置
4. 修改`boot.sh`文件,将`RUN_CMD`变量值修改成部署环境的JAVA实际路径
5. 执行 `chmod +x boot.sh` 命令给`boot.sh`增加执行权限
6. 执行 `./boot.sh start` 命令启动服务,支持 start/stop/restart/status命令
7. 服务启动后访问 http://IP:8000/fizz-manager 将IP替换成服务部署机器IP地址使用超级管理员账户`admin`密码`Aa123!`登录
##### 管理后台前端fizz-admin-professional
1.解压zip资源包取文件夹【fizzAdmin】放置于服务器静态数据存放目录 如:/home/data/
2.配置nginx服务器
```
server {
listen 9000;
server_name localhost:9000;
location / {
root /home/data/fizzAdmin;
}
location ^~ /api {
rewrite ^/api/(.*) /$1 break;
proxy_pass http://127.0.0.1:8000;
}
}
# 注root中地址需与资源包存放目录路径一致
# 注http://127.0.0.1:8000 为管理后台(fizz-manager-professional)的访问地址
```
3.访问地址
【资源部署服务器IP + 端口号】如http://127.0.0.1:9000/
端口号与nginx配置端口号一致
#### 二、安装fizz-gateway-community社区版
说明如果使用apollo配置中心可把application.yml文件内容迁到配置中心apollo上应用名为fizz-gateway使用不使用apollo可去掉下面启动命令里的apollo参数。
安装方式一:脚本启动:
1. 下载fizz-gateway-community的最新代码修改application.yml配置文件里eureka、redis的配置使用maven命令`mvn clean package -DskipTests=true`构建并把构建好的fizz-gateway-community-1.1.0.jar和boot.sh放同一目录
2. 修改boot.sh脚本的apollo连接JVM内存配置
3. 执行 `./boot.sh start` 命令启动服务,支持 start/stop/restart/status命令
安装方式二IDE启动:
1. 本地clone仓库上的最新代码
2. 将项目fizz-gateway导入IDE
3. 导入完成后设置项目启动配置及修改application.yml配置文件里eureka、redis的配置在VM选项中加入`-Denv=dev -Dapollo.meta=http://localhost:66`(Apollo配置中心地址)
安装方式三jar启动:
1. 本地clone仓库上的最新代码修改application.yml配置文件里eureka、redis的配置
2. 在项目根目录fizz-gateway-community下执行Maven命令`mvn clean package -DskipTests=true`打包
3. 进入target目录使用命令`java -jar -Denv=DEV -Dapollo.meta=http://localhost:66 fizz-gateway-community-1.1.0.jar`启动服务
最后访问网关,地址形式为:
http://127.0.0.1:8600/proxy/[服务名]/[API Path]
## 官方技术交流群
Fizz官方技术交流①群已满
Fizz官方技术交流②群已满
Fizz官方技术交流③群512164278
![](https://user-images.githubusercontent.com/184315/97130743-3572d100-177d-11eb-97c8-7599a22c7c04.png)
## 相关文章
[服务器减少50%研发效率提高86%我们的管理型网关Fizz自研之路](https://www.infoq.cn/article/9wdfiOILJ0CYsVyBQFpl)
[简单易用的微服务聚合网关首选Fizz Gateway安装教程](https://my.oschina.net/linwaiwai/blog/4696224)
[大厂推荐使用的网关解密Fizz Gateway管理后台使用教程](https://my.oschina.net/linwaiwai/blog/4696124)
[架构师效率快的终极原因Fizz Gateway网关之服务编排](https://my.oschina.net/linwaiwai/blog/4696116)
[高阶架构师支招Fizz Gateway的插件开发](https://my.oschina.net/linwaiwai/blog/4696131)
[高阶程序员必备技能Fizz Gateway网关的二次开发](https://my.oschina.net/linwaiwai/blog/4696133)
## 授权说明
1. 网关核心项目fizz-gateway-community社区版本以GNU v3的方式进行的开放可以免费使用。
2. 管理后台项目(fizz-manager-professional和fizz-admin-professional)作为商业版本仅开放二进制包 [免费下载](https://github.com/wehotel/fizz-gateway-community/releases)而商业项目请联系我们524423586@qq.com进行授权。
## 系统截图
![](https://user-images.githubusercontent.com/184315/97131368-f5ace900-177e-11eb-9e00-24e73d4e24f5.png)
![](https://user-images.githubusercontent.com/184315/97131376-f9407000-177e-11eb-8c17-4922b3df5d48.png)
![](https://user-images.githubusercontent.com/184315/97131378-f9d90680-177e-11eb-92b4-6fc67550daca.png)
![](https://user-images.githubusercontent.com/184315/97131381-fba2ca00-177e-11eb-9e59-688dafa76aea.png)
![](https://user-images.githubusercontent.com/184315/97131382-fc3b6080-177e-11eb-908a-a5ffc8b08459.png)