为什么要负载均衡?
为了不让服务器同时过多的用户访问,造成服务器的宕机。
所以在提供一组可以提供相同服务的计算机~类似银行的各个营业点。
负载均衡有哪些策略?
https://www.jianshu.com/p/186b4ceea6fc —原作者(简书):二月_春风
可以在基于IRule接口去查看(idea中双击shift键输入IRule),快捷键ctrl+h,查看源码有哪些策略
1.AbstractLoadBalancerRule
2.RandomRule
3.RoundRobinRule
4.RetryRule
5.WeightedResponseTimeRule
6.ClientConfigEnabledRoundRobinRule
7.PredicateBasedRule
8.AvailabilityFilteringRule
9.ZoneAvoidanceRule
10.BestAvailableRule
11.NacosRule
(具体辅助理解请看上面的链接)
如何修改修改消费端默认的负载均衡策略?
方案1:修改配置文件(application.yml),添加如下语句
xxxx-provider: #这个是要进行远程调用的服务id(服务名)
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #负载均衡算法
对于方案1写法,在写的过程没有提示,编写困难,但是将来的可运维性会比较好,我们这部分配置写到配置中心,不需要重启服务即可实现配置的动态发布,动态更新。
方案2:修改消费方启动类,在启动类中添加如下方法
@Bean
public IRule ribbonRule() {
return new RandomRule();
}