Compare commits

...

10 Commits

Author SHA1 Message Date
linwaiwai
80e27f4ad4 Update Docker images and ports in docker-compose
Some checks failed
CodeQL / Analyze (java) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Java CI with Maven / build (push) Has been cancelled
2025-10-28 17:43:49 +08:00
linwaiwai
670cea860a Update README.md 2025-06-30 17:17:48 +08:00
linwaiwai
be64c9d36b Update README.en-us.md 2025-06-30 17:16:42 +08:00
linwaiwai
7c46742d1e Update README.en-us.md 2025-06-30 17:15:23 +08:00
linwaiwai
64bd6aa958 Update README.md 2025-06-12 15:45:38 +08:00
linwaiwai
b64c6c2462 Update docker-compose.yml 2025-05-19 16:03:46 +08:00
linwaiwai
54d1bc12c0 Update docker-compose.yml 2025-04-09 10:46:38 +08:00
linwaiwai
e23e2aa6a9 Update README.en-us.md 2025-02-10 11:13:18 +08:00
linwaiwai
dc05095d7d Update README.en-us.md 2025-02-10 11:12:46 +08:00
linwaiwai
89cf56f447 Update README.md 2025-02-10 11:11:23 +08:00
3 changed files with 131 additions and 104 deletions

View File

@@ -1,8 +1,9 @@
English | [简体中文](./README.md)
[简体中文](./README.md) | English
<p align="center">
<a href="https://www.fizzgate.com"><img src="https://www.fizzgate.com/fizz/nav-bar/logo.png?v=1" width="70%"></a>
</p>
<p>
<img alt="Version" src="https://img.shields.io/badge/version-3.1.0-blue.svg?cacheSeconds=2592000" />
<a href="http://www.fizzgate.com/fizz-gateway-node/" target="_blank">
@@ -16,129 +17,131 @@ English | [简体中文](./README.md)
</a>
</p>
- **buissness and technology communication channel**:
<img src="https://www.fizzgate.com/fizz/footer/serviceCode.png" width="150px">
> A replacement of Gravitee.
> **Business or technical inquiries**:
Please [purchase directly](https://l.fizzgate.com/#/shop/purchase) or [contact us](https://www.fizzgate.com/fizz/cms/article/about/contact/).
## What 's FizzGate
**Note:** The community version is for testing only and does not include technical support. For commercial support, please contact us via WeCom (WeChat Work).
An Aggregation API Gateway in Java. FizzGate is a microservice aggregation gateway developed in Java, a domestic alternative for application gateways with independent intellectual property. It enables hot service orchestration aggregation, automatic authorization selection, online service script coding, online testing, high-performance routing, API audit management, callback management, etc. With a powerful custom plugin system, it can be extended and provides a friendly graphical configuration interface to help enterprises quickly implement API service governance, reduce middleware code, lower coding investment, and improve the stability and security of API services.
---
## What is FizzGate?
## Demo
**FizzGate** is a Java-based microservice aggregation gateway designed as a Chinese domestic alternative with full IP ownership. It enables real-time service orchestration, dynamic API aggregation, authorization management, scriptable API logic, online testing, high-performance routing, approval workflows, callback handling, and more.
https://demo.fizzgate.com/
It features a powerful plugin system and an intuitive GUI for API governance, helping enterprises reduce glue code, streamline development, and improve API stability and security.
In order to provide better services to everyone, the community version no longer provides any technical consultation. For the commercial version, please add Enterprise WeChat for business support.
---
account/password:Please contact the official enterprise WeChat to obtain
## Official Website
health checking urlhttps://demo.fizzgate.com/admin/health
👉 https://www.fizzgate.com/
API accesshttps://demo.fizzgate.com/proxy/[Service Name]/[API Path]
## Demo Environment
## Design Philosophy
👉 https://demo.fizzgate.com/
Username / Password: *Commercial software. Trial accounts available via purchase or WeCom request.*
Intelligent interface, minimal dependencies, comprehensive features, and easy deployment. We strive for a simple and clear interface design, aiming to simplify complex configuration steps and operations to meet the needs of users at different levels. This enables developers, operations personnel, and others to efficiently manage and configure the system.
- Health check: https://demo.fizzgate.com/admin/health (Restrict `/admin` path in production)
- API access: https://demo.fizzgate.com/proxy/[service-name]/[api-path]
- Intelligent Interface: FizzGate focuses on intelligent design to enhance user experience. When users input data, the system will provide automatic input features whenever possible, reducing the complexity of user operations. Additionally, real-time prompts and reminders will be provided near the input area to assist users in configuring and operating the system quickly and accurately.
- Minimal Dependencies: FizzGate is designed with careful consideration of external middleware and third-party dependencies, ensuring no intrusion into existing systems. Most features are based on self-developed technologies, minimizing the need for external dependencies, reducing resource consumption during deployment, while maintaining system efficiency and maintainability. This design makes FizzGate more stable and flexible for deployment within corporate networks.
- Comprehensive Features: FizzGate covers the entire API lifecycle management, supporting various stages including API definition, integration, data masking, traceability, and security protection, thereby improving API management efficiency. As one of the most feature-rich products on the market, FizzGate offers a complete enterprise-level solution, helping companies achieve efficient and secure API management.
- Easy Deployment: FizzGate has been designed with enterprise deployment requirements in mind, supporting disaster recovery needs for small and medium enterprises, as well as large-scale cluster deployments and geographically distributed deployments for larger enterprises. The deployment process is quick and simple, with deployment issues solved in less than a minute.
---
## Supported Architectures
Supports arm64/amd64/x86/x86_64 architectures, compatible with Mac, Windows, and Linux, and supports Xinchuang components such as Kirin V10 and Dameng V8.
## FizzGate's Design
## System Architecture
<img width="500" src="https://user-images.githubusercontent.com/184315/97130741-33a90d80-177d-11eb-8680-f589a36e44b3.png" />
## FizzGate's typical scene
---
## Typical Use Cases
<img width="90%" src="https://user-images.githubusercontent.com/6129661/216249866-71eb54de-d2e8-44ce-8e70-a1ca1f51553d.png" />
## Product Features
---
## Design Philosophy
- **Smart UI**: Contextual suggestions, auto-completion, and low-ops configuration.
- **Minimal Dependencies**: Built-in core features with minimal 3rd-party reliance.
- **Comprehensive Features**: Covers the full API lifecycle: from registration to security.
- **Easy Deployment**: Supports standalone to cluster deployments, including failover and dual-active modes.
---
## Supported Architectures
- Compatible with `arm64`, `amd64`, `x86`, `x86_64`.
- Runs on Mac, Windows, and Linux.
- Supports Chinas domestic secure platforms (Kylin V10, Dameng V8, etc.).
---
## Key Features
### API Management
- Application Management: Supports management of integrated applications.
- API Management: Supports backend service configuration after API definition.
- Group Management: Supports managing API-related configurations by grouping them.
- Service Authentication: Through plugins, the service can apply access control, verification, and other chain interception strategies.
- Cluster Management: FizzGate gateway nodes are stateless, with configuration information automatically synchronized. It supports horizontal scaling of nodes and multi-cluster deployment.
- Security Authorization: Supports built-in authorization methods such as key-auth, JWT, and basic-auth, with easy control.
- Load Balancing: Supports round-robin load balancing.
- Circuit Breaker: Supports various recovery strategies and circuit breaker configurations based on services or specific addresses.
- Multiple Registries: Supports service discovery from Eureka or Nacos.
Configuration Center: Supports integration with Apollo configuration center.
- HTTP Reverse Proxy: Hides real backend services and supports REST API reverse proxy.
- Access Policies: Supports different access strategies for different APIs, with configurable authentication settings.
- Blacklist/Whitelist: Supports configuring access restrictions via blacklists and whitelists.
- Custom Plugins: A powerful plugin mechanism that allows for free expansion.
- Extensible: The easy-to-use plugin mechanism facilitates function extension.
- High Performance: Outstanding performance among numerous gateways.
- Management Backend: Configures the gateway cluster through the management interface.
- Replay Management: Supports management, subscription, replay, and logging of callbacks.
- Multi-level Rate Limiting: Detailed rate-limiting methods, including service-level, interface-level, APP_ID-level, and IP-level rate limits.
- Microservice Documentation: Enterprise-level management for open microservice documentation, simplifying system integration.
- Public Network Dedicated Line: Establishes a fully protected private connection in the public network.
- Transparent Proxy: Supports transparent proxy chaining.
- App/API configuration
- Request logging
- Group-based configuration
- Chain-based plugin authorization
- Stateless node cluster with auto-sync
- Built-in authentication: `Key-Auth`, `JWT`, `Basic-Auth`
- Load balancing (round-robin)
- Circuit breaker policies
- Service discovery: `Eureka`, `Nacos`
- Config center: `Apollo`
- Reverse proxy
- Access policy management
- Black/white lists
- Custom plugins
- High performance
- Management UI
- Callback and replay support
- Multi-level rate limiting (service/interface/app_id/IP)
- API documentation
- Private network tunneling
- Transparent proxy support
### API Integration
- Supports HTTP, Dubbo, gRPC, SOAP orchestration
- Supports JSON/XML transformation
- Versioning & rollback
- Integration testing
- Approval workflow
- Service Orchestration: Supports hot service orchestration for HTTP, Dubbo, gRPC, and Soap protocols. Supports both frontend and backend encoding and JSON/XML output, allowing updates to the API anytime, anywhere.
- Version Control: Supports the release of operations and multiple rollbacks.
- Integration Testing: Provides API integration testing to ensure API interface reliability and availability.
- Release Approval: Supports an approval process for API orchestration releases.
-
### API Data Masking
### API Desensitization
- Sensitive data classification and grading
- Structured/unstructured desensitization
- Visual strategy configuration
- Sensitive data detection
Classification and Leveling: Supports the classification and hierarchical management of sensitive data, enabling reasonable masking strategies.
API Data Masking: Supports masking sensitive data in APIs, both structured and unstructured.
Masking Strategies: Supports visual masking strategy configurations, applying these strategies based on context.
Sensitive Data Recognition: Supports the identification of sensitive data in APIs.
API Traceability
### API Traceability
- Web watermarking for HTML/Word/Excel/PPT/PDF/Images
- Leak traceability and contextual data history
Web File Watermark: Supports adding visible watermarks to proxy pages. Supports types such as HTML, Word/Excel/PPT/PDF, PNG/JPEG/TIFF, etc.
Leak Traceability: Supports tracing all contexts and terminal information of data queries related to leaks. Supports types such as JSON/HTML, Word/Excel/PPT/PDF, PNG/JPEG/TIFF, etc.
API Security (Bypass Analysis)
### API Security (Out-of-Band Analysis)
- API asset analysis and API spec generation
- Sensitive data detection
- Threat detection and response
- Vulnerability scanning
- Anomaly blocking (automatic/manual)
Asset Analysis: Analyzes and manages API security assets, generating API specifications to help detect potential security risks.
API Vulnerabilities: Scans and reports security vulnerabilities in API interfaces, improving API security.
API Anomalies: Supports anomaly detection for API access, enabling prompt response to abnormal behaviors.
API Blocking: Automatically or manually blocks API access upon detecting anomalies to prevent attack spread.
---
## Benchmarks
## Performance Benchmark
We compare FzzGate with the major gateway products on the market, using the same environment and conditions, and the test objects are under single node. The Mock interface simulates a 20ms latency with a packet size of about 2K.
**Test Environment**
- Intel Xeon E5-2650 v3 @ 2.30GHz ×4
- Linux 3.10.0-957.21.3.el7.x86_64
- 8GB RAM
- Mock API with 20ms latency and 2KB payload
- Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz * 4
- Linux version 3.10.0-957.21.3.el7.x86_64
- 8G RAM
| Category | Product name | QPS of <br/>600 connections | 90% Latency(ms) of <br/>600 connections | QPS of <br/>1000 connections | 90% Latency(ms) of <br/>1000 connections |
| :------------------ | :------------------ | :-------: | :-------: | :-------: | :-------: |
| Backend Service | direct access | 23540| 32.19 | 27325| 52.09 |
| Traffic Gateway | kong <br/>v2.4.1 | 15662 | 50.87 | 17152 | 84.3 |
| Application Gateway | fizz-gateway-node <br/>v3.5.1 | 12206 | 65.76 | 12766 | 100.34 |
| Application Gateway | spring-cloud-gateway <br/>v2.2.9 | 11323 | 68.57 | 10472 | 127.59 |
| Application Gateway | shenyu <br/>v2.3.0 | 9284 | 92.98 | 9939 | 148.61 |
## Version comparison
- fizz-gateway-node Community Edition
- fizz-manager-professionalManagement backend professional version (backend)
- fizz-admin-professionalManagement backend professional version (frontend)
| fizz-gateway-node | 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 |
| Category | Product | QPS (600) | Latency P90 (600) | QPS (1000) | Latency P90 (1000) |
|--------------|------------------------------|-----------|-------------------|-------------|---------------------|
| Backend | Direct Access | 23540 | 32.19 ms | 27325 | 52.09 ms |
| Traffic GW | Kong v2.4.1 | 15662 | 50.87 ms | 17152 | 84.3 ms |
| App Gateway | FizzGate v3.0.0 | 12206 | 65.76 ms | 12766 | 100.34 ms |
| App Gateway | Spring Cloud Gateway v2.2.9 | 11323 | 68.57 ms | 10472 | 127.59 ms |
| App Gateway | ShenYu v2.3.0 | 9284 | 92.98 ms | 9939 | 148.61 ms |
Starting from v1.3.0, the frontend and backend of the management backend are merged into one package
@@ -352,6 +355,10 @@ FizzGate官方技术交流③群512164278
![aggr2](https://cdn.fizzgate.com/fizz/assets/img/manager_aggregate_add_9.662f119e.png)
![api_safety](https://cdn.fizzgate.com/safety/api_safety_home.png)
![api_safety_log](https://cdn.fizzgate.com/safety/api_safety_log.png)
![route](https://cdn.fizzgate.com/fizz/assets/img/route1.1fd8abd1.png)
![plugin](https://cdn.fizzgate.com/fizz/assets/img/manager_plugin_add_2.e1b5a24e.png)
@@ -363,3 +370,4 @@ FizzGate官方技术交流③群512164278
![flowcontrol](https://cdn.fizzgate.com/fizz/assets/img/manager_flow_control_rule_default_edit_2.130223a7.png)
![doc](https://cdn.fizzgate.com/fizz/assets/img/manager_interface_collection_preview_2.eee99e97.png)

View File

@@ -61,6 +61,7 @@ API地址https://demo.fizzgate.com/proxy/[服务名]/[API_Path]
API管理
- 应用管理:支持对接入的应用进行管理;
- API管理支持API定义后端服务的配置
- 请求日志支持全量记录API请求日志
- 分组管理支持通过分组管理实现同一分组的API使用相关的配置
- 服务鉴权:通过插件可对服务进行应用访问权限、检验等链式的拦截策略;
- 集群管理FizzGate网关节点是无状态的配置信息自动同步支持节点水平拓展和多集群部署
@@ -100,8 +101,9 @@ API溯源
API安全旁路分析)
- 资产分析对API安全资产进行分析和管理生成API Spec帮助检测潜在的安全风险
- API敏感数据支持API敏感数据检测功能实时发现API中的敏感数据泄露风险
- API威胁支持API异常访问检测功能及时发现异常行为并进行响应
- API漏洞支持对API接口的安全漏洞进行扫描、报告提升API的安全性
- API异常支持API异常访问检测功能及时发现异常行为并进行响应
- API阻断在发现异常时支持自动或手动阻断API的访问避免攻击扩散。
## 基准测试
@@ -130,7 +132,6 @@ API安全旁路分析)
|-------------------|---------------------------|
| v1.3.0 | v1.3.0 |
| ... | ... |
| v2.7.3 | v2.7.3 |
| v3.0.0 | v3.0.0 |
| v3.1.0 | v3.1.0 |
| v3.2.0 | v3.2.0 |
@@ -323,6 +324,10 @@ docker run --rm -d -p 8600:8600 \
![aggr2](https://cdn.fizzgate.com/fizz/assets/img/manager_aggregate_add_9.662f119e.png)
![api_safety](https://cdn.fizzgate.com/safety/api_safety_home.png)
![api_safety_log](https://cdn.fizzgate.com/safety/api_safety_log.png)
![route](https://cdn.fizzgate.com/fizz/assets/img/route1.1fd8abd1.png)
![plugin](https://cdn.fizzgate.com/fizz/assets/img/manager_plugin_add_2.e1b5a24e.png)

View File

@@ -2,7 +2,7 @@ version: "3.6"
services:
fizz-mysql:
image: "fizzgate/fizz-mysql:3.1.0"
image: "docker.1ms.run/fizzgate/fizz-mysql:3.6.0"
container_name: fizz-mysql
restart: always
hostname: fizz-mysql
@@ -12,22 +12,27 @@ services:
- MYSQL_ROOT_PASSWORD=root123456
- MYSQL_DATABASE=fizz_manager
volumes:
- "./docker_volumes/etc/mysql/conf.d:/etc/mysql/conf.d"
- "./docker_volumes/mysql:/var/lib/mysql"
entrypoint: [ 'docker-entrypoint.sh','--sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' ]
networks:
- fizz
fizz-redis:
image: "redis:6.0.8"
image: "docker.1ms.run/library/redis:6.0.8"
container_name: fizz-redis
restart: always
hostname: fizz-redis
ports:
- "6379:6379"
command: redis-server --appendonly no --save ""
volumes:
- "./docker_volumes/redis/data:/data"
networks:
- fizz
fizz-gateway-community:
image: "fizzgate/fizz-gateway-community:3.1.0"
image: "docker.1ms.run/fizzgate/fizz-gateway-community:3.6.0"
container_name: fizz-gateway-community
restart: always
hostname: fizz-gateway-community
@@ -36,19 +41,23 @@ services:
depends_on:
- fizz-manager-professional
ports:
- "8600:8600"
- "8803:8600"
environment:
- aggregate.redis.host=fizz-redis
- aggregate.redis.port=6379
- aggregate.redis.password=
- aggregate.redis.database=9
- fizz.aggregate.writeMapNullValue=true
- refresh-local-cache.initial-delay-millis=0
- dlp.refreshCache.initial-delay-millis=0
volumes:
- "./docker_volumes/fizz-gateway-community/logs:/opt/fizz-gateway-community/logs"
- "./docker_volumes/fizz-gateway-community/biz:/opt/fizz-gateway-community/biz"
networks:
- fizz
fizz-manager-professional:
image: "fizzgate/fizz-manager-professional:3.1.0"
image: "docker.1ms.run/fizzgate/fizz-manager-professional:3.6.0"
container_name: fizz-manager-professional
restart: always
hostname: fizz-manager-professional
@@ -59,8 +68,9 @@ services:
- fizz-mysql
- fizz-redis
ports:
- "8000:8000"
- "8804:8000"
environment:
- spring.datasource.dynamic.enabled=false
- spring.redis.host=fizz-redis
- spring.redis.port=6379
- spring.redis.password=
@@ -68,8 +78,12 @@ services:
- "spring.datasource.url=jdbc:mysql://fizz-mysql:3306/fizz_manager?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true"
- spring.datasource.username=root
- spring.datasource.password=root123456
- "spring.datasource.druid.connectionSqlInit=set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'"
volumes:
- "./docker_volumes/fizz-manager-professional/logs:/opt/fizz-manager-professional/logs"
- "./docker_volumes/fizz-manager-professional/biz:/opt/fizz-manager-professional/biz"
- "./docker_volumes/fizz-manager-professional/cache:/opt/fizz-manager-professional/cache"
- "./docker_volumes/fizz-manager-professional/runtime:/opt/fizz-manager-professional/runtime"
networks:
- fizz