首先说明下项目
三个提供者、三个eureka注册中心集群、一个消费者
三个提供者只是application.properties文件中有些许不同(由于springcloud是针对各个微服务提供的一套解决方案,每个微服务连接不通的数据库)
1.数据库不同
2.特别注意:eureka.instance.instance-id 不同,不然后一个服务启动会代替前一个服务
3.注意:spring.application.name不能改变
步骤
1.首先启动三个eureka注册中心
2.其次启动三个接口提供者
3.最后启动消费者
consumer的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
consumer的配置bean中增加LoadBalanced注解
@Configuration
public class ConfigBean {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
切换ribbon的策略
@Bean
public IRule myRule(){
return new RandomRule();
}
最终在eureka注册中心看到的效果如下:
一个服务名称,三个服务实例
最终证明spring-ribbon默认的loadbalance策略是轮询
访问三次消费者,结果如下:











网友评论