在之前的实验中都是通过尤里卡和丝带结合使用的,但是现实中可能不具备这样的条件,例如有些服务没有注册到注册中心,但此时需要负载均衡到该服务,所以需要一种脱离尤里卡使用丝带。
修改电影:
1,去掉pom文件中的尤里卡依赖
& lt; dependency> & lt; groupId> org.springframework.cloud & lt; artifactId> spring-cloud-starter-eureka-server & lt;/dependency>
这个包其实包含丝带相关包,由于之前的负载均衡都是基于尤里卡的,所以无需单独引入丝带相关包。现在把这个依赖去掉并且单独引入丝带包。
2,加入丝带包
& lt; dependency> & lt; groupId> org.springframework.cloud & lt; artifactId> spring-cloud-starter-netflix-ribbon & lt;/dependency>
3,修改启动类,去掉@EnableEurekaClient注解
@SpringBootApplication//@EnableEurekaClient 公开课MovieApplication { @ bean @LoadBalanced 公众创建RestTemplate创建RestTemplate () { 返回新创建RestTemplate (); } 公共静态void main (String [] args) { SpringApplication.run (MovieApplication.class, args); } }
4了解到,丝带和尤里卡结合使用时,从尤里卡获取服务提供者的服务端口及IP来调用服务,现在脱离尤里卡后无法获取服务提供者的访问地址,因此需要在电影中指定服务调用者的端口及IP,修改yml文件:
用户: 带: listOfServers: localhost: 8010, localhost: 8011
调用格式:& lt; clientName.ribbon.listOfServers>可以配置多个实例地址,通过”、“分隔
启动电影,并且启动多个用户实例,访问http://localhost: 8020/电影/findById吗?用户id=1
可以获得结果。在观察用户的控制台: