如何提高吞吐量
- 当业务高峰时,突然有大量请求过来,采用缓存抗压。网关采用的是netty,boss线程接收到请求后,交给work线程,work线程不做处理直接放入缓存队列里,让其他线程处理,保证网关的稳定性。
- Disruptor(后面具体分析)
- mpmc(后面具体分析)
线程设定
- 网关不做访问磁盘,属于cpu密集型 :线程数=cpu核数+1或者加n根据压测来。
- 例如16c的,机器的第0核操作系统使用,加1 。线程数就是16.
- 减少线程切换。
用尽缓存,能用到缓存的地方尽量都放到内存里
- 加载服务列表
- 加载配置信息
- 加载rule规则
- 负载均衡策略
串行化设计
- 过滤器设计模式FILTER
- 并行和串行的选择,两个没有关联的业务,比较耗时的,可以采用并行,网关在此不考虑。