1月26日作业
- 跑通divide插件,研究底层原理,负载均衡,ip端口探活
- 总结
知识回顾
dividePlugin
主要soul网关处理http protocol的主要插件, 当有http请求打到soul网关的时候,soulWebHandler
会执行DividePlugin
来对http请求做相应的处理。DividePlugin
做的处理主要是对http请求进行转发,主要原理是根据不同的负载均衡算法将请求转发到注册到soul网关的某一台具体机器上。同时在soul-admin
端的UpstreamCheckService
会起一个定时任务,来检查缓存中的DivideUpstream
是否下线。
divide插件负载均衡实现
在soul-plugin-divide
中实现了LoadBalance
接口,由@SPI
注解标注,并由AbstractLoadBalancer
实现,并且提供了三种不同的算法来实现loadbalancing:
- 基于
MD5
的hash算法, 由HashLoadBalance
实现。 RandomLoadBalance
RoundRobinLoadBalance
同时采用Strategy Pattern在META-INF
里加入相应的策略配置: