开发步骤
选择起步依赖
- 选择Web的起步依赖 web
- 选择Discovery 发现模块
1 引入配置文件
spring.application.name=orderclient
server.port=3000
eureka.client.service-url.deaultZone=http://127.0.0.2:8761/eureka
2 启动入口类,添加注解
@EnableEurekaClient
3 开发调用服务代码
3.1 ribbon(负载均衡客户端)+restTemplate方式
@Controller
@RequestMapping("/client")
public class TestController {
@Resource
private RestTemplate restTemplate;
@RequestMapping("/test")
@ResponseBody
public String test(String name){
String forObject = restTemplate.getForObject("http://ORDERSERVICE/order/create?name="+name, String.class);
System.out.println(forObject);
return forObject;
}
@Bean
//负载均衡
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
3.2 Fegin开发方式
Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。
简而言之:
Feign 采用的是基于接口的注解
Feign 整合了ribbon,具有负载均衡的能力
整合了Hystrix,具有熔断的能力
- 1 增加Fegin起步依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
- 2 入口类添加FeignClients注解
@EnableFeignClients
- 3 开发接口
//@ FeignClient("服务名")
@FeignClient("ORDERSERVICE")
public interface ServiceFeginInterfaces {
//value 调用的具体方法
@RequestMapping(value = "/order/create",method = RequestMethod.GET)
String testdemo(@RequestParam(value = "name") String name);
}
- 4 开发具体调用代码
@Controller
@RequestMapping("/client2")
public class TestController2 {
@Resource
ServiceFeginInterfaces serviceFeginInterfaces;
@RequestMapping("/test2")
@ResponseBody
public String test(String name){
String testdemo = serviceFeginInterfaces.testdemo(name);
return testdemo;
}
}
4 启动进行测试
注意查看 负载均衡是否成功