Ribbon策略测试和其他配置

Ribbon策略测试

 

在第2节中我们进行Ribbon第一个实例的时候就发现了Ribbon从服务清单里面调用服务默认是通过轮询的方式,接下来我们将通过修改一些配置来体验其他的负载均衡策略。

首先,我们需要在订单服务的application.yml文件中配置其他的负载均衡策略,如程序清单12-8所示。

 

 

其中,goods表示服务的名称,

NFLoadBalancerRuleClassNamebiaos表示配置策略类所在的路径名,这是对调用goods服务进行负载均衡策略设置,如果要调用其他服务则可以把服务名称去掉,表示配置调用所有服务的Ribbon策略。

 

配置好随机策略之后,我们多配置几个商品服务,然后通过订单服务调用商品服务,如图所示。

 

 

 

 

图中的结果是我们多次调用接口的结果,从中我们可以发现它们被调用的次数不是均等的,依次查看会发现使用的不是轮询调用而是随机调用,当我们把application.yml中的配置注释掉之后发现又变成了轮询调用,即使用轮询策略。

 

 

Ribbon其他配置

在调用服务的时候,我们除了需要配置负载均衡调用策略外,可能还需要配置服务调用超时时间、重试次数等,如程序清单12-9所示。

 

Ribbon在进行负载均衡时,并不是启动时就加载上下文,而是在实际的请求发送时才去请求上下文信息,获取被调用者的IP地址、端口,这种方式在网络环境较差时往往会使得第一次请求超时,导致调用失败。

此时需要配置Ribbon客户端进行饥饿加载,如程序清单12-10所示。

 

 

饥饿加载(eager-load)是指在启动的时候便加载所有配置项到应用程序上下文。

 

posted @ 2022-12-14 14:59  cnetsa  阅读(119)  评论(0编辑  收藏  举报