spring|spring cloud 集成 ribbon负载均衡的实例代码
本文比较简单集成ribbon,如需要更详细,请查看我的更多博客内容。
首先创建两个服务提供者
文章图片
服务一,集成的nacos注册中心,这块随便写一个同名接口
文章图片
端口配置8301
文章图片
服务二,同名接口内容修改,其他跟上一个服务一大体内容一致
文章图片
端口配置成8302
文章图片
创建服务消费者
文章图片
RibbonConfig.java
package com.example.nacosribbonconsumers.config; import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.RoundRobinRule; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.netflix.ribbon.RibbonClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration// 如果多个服务可以选择不同的策略/*@RibbonClients({@RibbonClient(name = "other",configuration = OtherConfig.class),@RibbonClient(name = "provider",configuration = ProviderConfig.class)})*/@RibbonClient(name = "nacos-ribbon-provider")public class RibbonConfig {//定义负载均衡规则@Beanpublic IRule ribbonRule(){return new RoundRobinRule(); /*** RoundRobinRule:*轮询规则** RandomRule:*随机规则** WeightedResponseTimeRule:*使用响应时间的平均或者百分比为每个服务分配权重的规则,如果没法收集响应时间信息,会默认使用轮询规则** BestAvailableRule:*会先根据断路器过滤掉处于故障的服务,然后选择并发量最小的服务** ZoneAvoidanceRule:*根据server所在Zone和其性能,选择服务器,默认规则** AvailabilityFilteringRule:*先根据断路器规则过滤掉有问题的服务,然后对剩余的服务按照轮询的策略进行访问** RetryRule:*先按照RoundRobinRule规则进行服务获取,如果调用服务失败会在指定时间内进行重试,直到获取到可用的服务。*/}@Bean@LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate(); }}
【spring|spring cloud 集成 ribbon负载均衡的实例代码】RibbonTest.java
package com.example.nacosribbonconsumers.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestControllerpublic class RibbonTest {@Autowiredprivate RestTemplate restTemplate; @GetMapping(value = "https://www.it610.com/ribbon-consumers/ribbon-test")public String printProviderLog(){String result = restTemplate.getForObject("http://nacos-ribbon-provider/ribbon-test", String.class); return result; }}
pom包
org.springframework.cloud spring-cloud-starter-netflix-ribbon
配置文件
文章图片
先启动两个服务提供者,然后在启动服务消费者,浏览访问
文章图片
文章图片
不断刷新 发现使用的轮询方式交替执行。
到此这篇关于spring cloud 集成 ribbon负载均衡的文章就介绍到这了,更多相关spring cloud ribbon负载均衡内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 2018-07-09|2018-07-09 Spring 的DBCP,c3p0
- spring|spring boot项目启动websocket
- Spring|Spring Boot 整合 Activiti6.0.0
- Spring集成|Spring集成 Mina
- springboot使用redis缓存
- Spring|Spring 框架之 AOP 原理剖析已经出炉!!!预定的童鞋可以识别下发二维码去看了