v2.7.0
registro de cambios:
Complemento de publicación en escala de grises agregado,
admite OAuth personalizado ,
admite recordatorios de nuevas versiones
, estadísticas de interfaz optimizadas y registros de alarma
Agregue el complemento de publicación en escala de grises
Admite OAuth personalizado
Admite notificación de nueva versión
Optimiza las estadísticas de la API y el registro de alarmas
¿Qué es Fizz Gateway?
Una puerta de enlace API de agregación en Java. Fizz Gateway es una puerta de enlace de agregación de microservicios desarrollada en base a Java. Es una alternativa localizada a las puertas de enlace de aplicaciones con derechos de propiedad intelectual independientes. Puede realizar orquestación y agregación de servicios en caliente, selección de autorización automática, codificación de scripts de servicios en línea , Para pruebas en línea, enrutamiento de alto rendimiento, gestión de auditoría de API, gestión de devolución de llamadas y otros fines, tiene un potente sistema de complemento personalizado que se puede ampliar por sí mismo y proporciona una interfaz de configuración gráfica amigable, que puede ayudar rápidamente a las empresas a administrar servicios de API y reducir el código adhesivo de capa intermedia, así como reducir la inversión en codificación y mejorar la estabilidad y seguridad de los servicios de API.
Entorno de demostración (Demo)
Cuenta/Contraseña: admin
/Aa123!
Dirección de verificación de estado: http://demo.fizzgate.com/admin/health (para la versión en línea, restrinja el acceso a la red externa de la ruta de administración)
Dirección API: http://demo.fizzgate.com/proxy/[nombre del servicio]/[API_Path]
diseño de fizz
Escenarios de aplicación típicos de Fizz
Características del producto
- Administración de clústeres: los nodos de puerta de enlace de Fizz no tienen estado, la información de configuración se sincroniza automáticamente y admite la expansión horizontal de nodos y la implementación de múltiples clústeres.
- Autorización de seguridad: admite métodos de autorización de autenticación de clave, JWT y autenticación básica integrados, y se puede controlar fácilmente.
- Orquestación de servicios: admite HTTP, Dubbo, gRPC, capacidades de orquestación de servicios en caliente del protocolo Soap, admite codificación de front-end y back-end, admite salida JSON/XML y actualiza la API en cualquier momento y en cualquier lugar.
- Equilibrio de carga: admite el equilibrio de carga por turnos.
- Registro múltiple: Admite el descubrimiento de servicios de los registros Eureka o Nacos.
- Centro de configuración: admite acceso al centro de configuración de apolo.
- Proxy inverso HTTP: oculte el servicio de backend real y admita el proxy inverso Rest API.
- Política de acceso: admite diferentes políticas para acceder a diferentes API, configurar diferentes autenticaciones, etc.
- Lista blanca y negra de IP: admite la configuración de la lista blanca y negra de IP.
- Complementos personalizados: un potente mecanismo de complemento admite la expansión gratuita.
- Extensible: el mecanismo de complemento simple y fácil de usar facilita la funcionalidad extendida.
- Alto rendimiento: el rendimiento es excelente entre muchas puertas de enlace.
- Control de versiones: Admite la publicación y múltiples reversiones de operaciones.
- Fondo de administración: configure el clúster de la puerta de enlace a través de la interfaz de fondo de administración.
- Gestión de devolución de llamada: Admite gestión de devolución de llamada, suscripción, reproducción y registro.
- Limitación de corriente multinivel: los métodos de limitación de corriente detallados incluyen la limitación de corriente de servicio, la limitación de corriente de interfaz, la limitación de corriente APP_ID y la limitación de corriente IP.
- Documentos de microservicios: la gestión de nivel empresarial abre la gestión de documentos de microservicios, lo que hace que la integración del sistema sea más conveniente.
- Línea dedicada de red pública: Establezca un canal de conexión privado totalmente protegido en la red pública.
- Disyuntor de política: Realice múltiples configuraciones de disyuntor de estrategia de recuperación en función de servicios o direcciones específicas.
Puntos de referencia
Comparamos Fizz con los principales productos de puerta de enlace del mercado, utilizando el mismo entorno y condiciones, y probando un solo nodo. La interfaz Mock simula un retraso de 20 ms y el tamaño del paquete es de aproximadamente 2K.
- CPU Intel(R) Xeon(R) E5-2650 v3 a 2,30 GHz * 4
- Linux versión 3.10.0-957.21.3.el7.x86_64
- RAM 8G
Clasificación | producto | 600 QPS concurrentes |
600 concurrentes 90% Latencia (ms) |
1000 QPS concurrentes |
1000 concurrentes 90% Latencia (ms) |
---|---|---|---|---|---|
servicio de back-end | Acceso directo a servicios backend | 23540 | 32.19 | 27325 | 52.09 |
pasarela de tráfico | kong v2.4.1 |
15662 | 50.87 | 17152 | 84.3 |
Puerta de enlace de aplicaciones | fizz-gateway-comunidad v2.0.0 |
12206 | 65.76 | 12766 | 100.34 |
Puerta de enlace de aplicaciones | primavera-nube-puerta de enlace v2.2.9 |
11323 | 68.57 | 10472 | 127.59 |
Puerta de enlace de aplicaciones | shenyu v2.3.0 |
9284 | 92.98 | 9939 | 148.61 |
Comparación de versiones
-
Fizz-gateway-community: Edición de la comunidad
-
Fizz-manager-professional: administración en segundo plano versión profesional (servidor)
-
Fizz-admin-professional: versión profesional de administración en segundo plano (front-end)
Fizz-gateway-comunidad | Fizz-gerente-profesional | Fizz-admin-profesional |
---|---|---|
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 |
Desde v1.3.0, el front-end y el lado del servidor del fondo de administración se fusionan en un solo paquete
-
Fizz-gateway-community: Edición de la comunidad
-
Fizz-manager-professional: experiencia en gestión
Fizz-gateway-comunidad | Fizz-gerente-profesional |
---|---|
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 |
v2.7.0 | v2.7.0 |
Descargue la versión de fondo de administración correspondiente de acuerdo con la versión de la versión de la comunidad
Instrucciones de implementación
Tutorial detallado de implementación >>>
Instalar dependencias
Instala las siguientes dependencias:
- Redis 2.8 o superior
- MySQL 5.7 o superior
- Centro de configuración de Apollo (opcional)
- Registro de servicios Eureka o Nacos (opcional)
Para la instalación de dependencias, consulte el tutorial de implementación detallado
Instalar Fizz
1. Instalar el fondo de gestión
从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]