Ribbon:基于HTTP和TCP的客户端负载均衡器
以前面已有项目:eureka-server
作为服务注册中心,eureka-client
作为服务提供者, eureka-consumer-ribbon服务消费者
1.pom.xml:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2.application.properties
spring.application.name=eureka-consumer-ribbon
server.port=8081
eureka.client.serviceUrl.defaultZone=http://localhost:1002/eureka/
3.Application.java
@EnableDiscoveryClient
@SpringBootApplication
public class Application {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4.EurekaController.java
@RestController
public class EurekaController {
@Autowired
RestTemplate restTemplate;
@GetMapping("/consumer")
public String sx() {
return restTemplate.getForObject("http://eureka-client/sx", String.class);
}
}
5.启动eureka-server,eureka-client,
eureka-consumer-ribbon
查看 到