介绍
本篇文章为大家展示了怎么在SpringCloud中利用丝带实现负载均衡,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
maven引入丝带
, & lt; !——, Ribbon ——比; ,,,& lt; dependency> ,,,,,& lt; groupId> org.springframework.cloud ,,,,,& lt; artifactId> spring-cloud-starter-netflix-ribbon ,,,& lt;/dependency>
创建RibbonConfig文件,主类添加@RibbonClient (name=癛ibbonConfig"、配置=RibbonConfig.class),我这里偷懒,直接在主类中创建内部类
@EnableEurekaClient @RibbonClient (=name “RibbonConfig",, configuration =, RibbonConfig.class) @SpringBootApplication public class  SpringbootSpringdataJpaApplication { public 才能;static  void main (String [], args), { ,,,SpringApplication.run (SpringbootSpringdataJpaApplication.class, args); ,,} } @ configuration class RibbonConfig  { ,@ bean public 才能;IRule  ribbonRule () { ,,,return new RandomRule();,//分配策略:随机选择一个服务器//,,,,return new BestAvailableRule();,//分配策略:选择一个最小的并发请求的服务器,逐个考察服务器,如果服务器被绊倒了,则忽略//,,,,return new RoundRobinRule();,//分配策略:轮询选择,轮询指数,选择指数对应位置的服务器//,,,,return new WeightedResponseTimeRule();,//分配策略:根据响应时间分配一个重量(权重),响应时间越长,重量越小,被选中的可能性越低//,,,,return new ZoneAvoidanceRule();,//分配策略:复合判断服务器所在区域的性能和服务器的可用性选择服务器//,,,,return new RetryRule();,//分配策略:对选定的负载均衡策略机上重试机制,在一个配置时间段内当选择服务器不成功,则一直尝试使用它的方式选择一个可用的服务器 ,,} ,@ bean public 才能;IPing  ribbonPing (), { ,,,return new PingUrl (); ,,} ,@ bean public 才能;ServerListSubsetFilter  serverListFilter (), { ,,,ServerListSubsetFilter filter =, new ServerListSubsetFilter (); ,,,return 过滤器; ,,} }
下表显示了春云Netflix默认为丝带提供的bean:
@RestController @RequestMapping (“/user") public class  UserController { @RequestMapping才能(“/ribbon") public 才能;String 丝带(),{ ,,,return “springdatejpa ——,我的端口是:10088“; ,,} }
第二个服务提供者也是这样配置,注意:应用名要相同(spring.application.name=springdatejpa);端口不同,
<强>服务消费者强>
服务消费者使用假装调用,无需做任何修改,假装已经使用丝带。具体配置请戳:SpringCloud系列——假装服务调用
@FeignClient (=name “springdatejpa",, path =,“/user/? public interface  MyspringbootFeign { @RequestMapping才能(“/ribbon") String 才能带(); }
/* * ,,*,假装调用 ,,*/@GetMapping才能(“假装/ribbon") String 才能;带(){ ,,,return myspringbootFeign.ribbon (); 以前,,}>效果
启动所有项目,我们注册了三个服务,其中:
有两个服务名称相同,处理的业务相同,端口不同,这两台作为服务提供者(可看做是一个“小集群”);
另一个是服务消费者(假装调用),