基于 Netty 与动态线程池技术,自主设计并实现了一个高性能、全异步的微服务 API 网关。该架构通过多 Reactor 模型支撑高并发网络通信,利用动态线程池保障系统弹性与资源利用率,并借助 AsyncHttpClient 完成全链路无阻塞处理。其核心是可插拔的动态过滤器链,借此提供了包括智能路由、灰度分流、精准流量治理、负载均衡及熔断降级在内的一站式流量管理能力,赋能微服务体系稳定高效运行。
- Java 17+
- Maven 3.6+
- Nacos/Zookeeper (可选)
git clone https://github.com/he-jw/InfiniteGateway.git
cd InfiniteGateway{
"routes": [
{
"id": "user-service-route",
"serviceName": "user-service",
"paths": [
"/user/**",
"/user/ops/**"
],
"filterConfigs": [
{
"name": "flow_filter",
"enabled": true
}
]
}
]
}{
"enable": true,
"executors": [
{
"threadPoolId": "gateway-biz-executor",
"corePoolSize": 8,
"maximumPoolSize": 10,
"queueCapacity": 1000,
"workQueue": "VARIABLE_LINKED_BLOCKING_QUEUE",
"rejectedHandler": "GatewayJdkPolicy",
"keepAliveTime": 60,
"allowCoreThreadTimeOut": false,
"notify": {
"receives": "admin@example.com",
"interval": 5
},
"alarm": {
"enable": true,
"queueThreshold": 80,
"activeThreshold": 80
}
}
]
}cd InfiniteGateway-Startup
mvn compile exec:java -Dexec.mainClass="com.infinite.gateway.startup.Main"mvn clean package -DskipTests
java -jar InfiniteGateway-Startup/target/InfiniteGateway-Startup-*.jar本地电脑:MacBook Air M2 8C 24G 使用Jmeter进行压测,后端服务只起一个实例节点 InfiniteGateway-Test-User,对比 SpringCloudGateway 和 InfiniteGateway 同等条件压测结果,结果显示InfiniteGateway吞吐量是SpringCloudGateway的两倍多。
性能数据基于典型业务场景测试,实际表现因环境而异
public class CustomAuthFilter implements Filter {
@Override
public void doPreFilter(GatewayContext context) {
// 自定义认证逻辑
String token = context.getRequest().getHeaders().get("Authorization");
if (!validateToken(token)) {
throw new AuthenticationException("Invalid token");
}
context.doFilter();
}
@Override
public String mark() {
return "custom_auth_filter";
}
@Override
public int getOrder() {
return 100;
}
}public class CustomLoadBalanceStrategy implements LoadBalanceStrategy {
@Override
public ServiceInstance chooseInstance(GatewayContext context,
List<ServiceInstance> instances,
LoadBalanceConfig config) {
// 自定义负载均衡逻辑
return instances.get(customSelectIndex(context, instances));
}
@Override
public String mark() {
return "CUSTOM_STRATEGY";
}
}本项目采用 Apache License 2.0 许可证。

