编写 Eureka 服务调用者 (简易版)
Step 4-1:使用 Spring Initializr 创建 Spring Boot 项目
选择如下配置(增加 Ribbon)
Step 4-2:创建配置文件 application.yml,内容如下(只增加了 server.port=9000 )
server:
port: 9000
spring:
application:
name: provider
eureka:
instance:
hostname: localhost
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
Step 4-3:编写启动类 @EnableEurekaClient
注意:自动引入的 Eureka 是 netflix.eureka
@SpringBootApplication
@EnableEurekaClient
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(InvokerApplication.class);
}
}
Step 4-4:编写Contorller 调用 Eureka 上的服务
@RestController | |
@Configuration | |
@Bean | |
@LoadBalanced | 使 RestTemplate 访问分布式服务的能力(即负载均衡的功能ribbon) |
@RestController
@Configuration
public class InvokerController {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
@RequestMapping(value = "/router", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public String router() {
RestTemplate restTpl = getRestTemplate();
// 根据应用名称调用服务
String json = restTpl.getForObject(
"http://first-cloud-provider/person/1", String.class);
return json;
}
}
访问调用者接口