任务
跑通divide插件,研究底层原理,负载均衡,ip端口探活
divide 插件
负载均衡
在 idea 下启动多个 http 的服务,端口分别为 8188 和 8189。启动成功后,发现 divide 插件的选择器已经自动配置了两个 http 服务,端口分别为 8188 和 8189。
注意:要先 idea 中的
Edit Configurations勾选去掉Single instance only,允许启动同个工程。

体验负载均衡功能,分别将 8188、8189 的权重设置为 2。请求 http 服务,请求成功后,发现三种场景下,1.8188权重为2;2.8189的权重为2;3.两个端口的权重都为50,请求结果均符合预期。

http 探活
在soul-admin 会有一个定时任务来扫描 配置的ip端口,如果发现下线,则会除该 ip + port。
体验 http 探活功能,此时将 8189 的服务停止。发现隔一会(100s),soul-admin会检测到 8189 端口已经不存在,打印错误日志。检查 divide 插件的负载均衡策略发现,8189 的服务配置已经被删除。符合预期。
1 | 2021-01-27 00:16:35.340 ERROR 40636 --- [upstream-task-5] o.d.s.a.s.impl.UpstreamCheckService : check the url=192.168.3.3:8189 is fail |

按照官网的介绍,可以更改以下配置。
1 | soul.upstream.check:true 默认为 true,设置为false,不检测 |
体验关闭 http 探活功能,更改配置 soul.upstream.check 为false。发现 http 的探活失败,不能检测到服务下线状态。符合预期。
Link
- 官网介绍 divide 插件:https://dromara.org/zh-cn/docs/soul/plugin-divide.html