此篇的基础是已经将子项目注册到服务器上,可以参考上一节集成Erueka
常见消费者模式
- 服务直连模式:无注册的服务,比如使用RestTemplate就可以直接获得资源。非常简单,语言平台无关。但是无法做到负载均衡。
- 客户端发现模式:服务实例启动后,将自己位置提交到注册表中。客户端自行使用负载均衡算法从多个服务实例中选择出一个。
常见微服务消费者
- HttpClient:HTTPclient集成RestTemplate与Httpclient介绍
- Ribbon:springcloud中的一个组件,基于Netflix来实现的一套客户端负载均衡服务器经常与Erueka搭配使用。
gredual的依赖如下:
集成Feign
- 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
- 启动类加上@EnableFeignClients
- 加上一个Feign接口
@FeignClient("注册到服务器中的实例名称")
public interface XXX {
@GetMapping("/实例对应的子项目下的接口")
String XXX();
}
4.直接 autowired这个接口就可以使用了。
5.可以在.properties中加入参数规定连接时间和去资源时间限制,避免资源浪费:
feign.client.config.feignName.connectTimeout: 5000
feign.client.config.feignName.readTimeout: 5000
6.就可以把微服务子项目中的需要改动的全部改完,就全部启动和上一篇最后一样,Feign就自行实现负载均衡的功能了。