任务

跑通divide插件,研究底层原理,负载均衡,ip端口探活

divide 插件

负载均衡

在 idea 下启动多个 http 的服务,端口分别为 8188 和 8189。启动成功后,发现 divide 插件的选择器已经自动配置了两个 http 服务,端口分别为 8188 和 8189。

注意:要先 idea 中的 Edit Configurations 勾选去掉 Single instance only,允许启动同个工程。

image.png

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

image.png

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

image.png

按照官网的介绍,可以更改以下配置。

1
2
soul.upstream.check:true  默认为 true,设置为false,不检测
soul.upstream.scheduledTime:10 定时检测时间间隔,默认10秒

体验关闭 http 探活功能,更改配置 soul.upstream.check 为false。发现 http 的探活失败,不能检测到服务下线状态。符合预期。

Link