微信号:hbhk1314
一、gateway的常用功能实现
1、动态路由添加(自动或手动)(已支持数据库配置管理功能)
自动:根据注册获取添加
手动:根据spring-cloud-gateway 提供刷新接口:
org.springframework.cloud.gateway.event.RefreshRoutesEvent.RefreshRoutesEvent
2、服务治理(降级、限流、隔离、熔断)(已支持数据库配置管理功能)
降级:提供降级配置、提供服务的启用和关闭,使用GlobalFilter拦截。
限流:提供限流配置、使用guava RateLimiter实现单机信号量限流。
隔离:提供隔离配置、使用GlobalFilter拦截,进入前设置信号量、完成时释放信号量
熔断:提供隔离配置、使用GlobalFilter拦截,发生异常时,记录异常次数,到达次数开启熔
断,进入半开。之后根据配置时间,进入尝试,成功开启、失败后续继续重试
3、网关统一异常处理
实现org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler统一封装返回格
式。
二、高性能网关设计
a、网关核心系统必须是无状态的、便于扩展
b、运行时本地存储,尽量在内存里面完成服务的处理和路由
c、减少对线程的依赖,采用非阻塞IO和异步事件响应机制
d、网关必须要自己的超时策略、不要依赖服务的超时时间
e、servlet 3 异步,netty 多路复用、netty work线程与业务线程分离
三、网关使用:
a、执行脚本
b、启动:org.hbhk.hxl.gateway.GatewayApplication
c、代码地址:https://gitee.com/hbhk/hxl-gateway