「 从0到1学习微服务SpringCloud 」01 一块儿来学呀! 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现
「 从0到1学习微服务SpringCloud 」03 Eureka的自我保护机制
「 从0到1学习微服务SpringCloud 」04服务消费者Ribbon+RestTemplatespring
Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只须要建立一个接口并注解。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。浏览器
继续用上节的工程, 启动eureka-server,端口为8761;启动service-hi 两次,端口分别为8762 、8863app
继续使用上节的eureka-client工程
1.加入Fegin依赖负载均衡
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
2.在启动类加上@EnableFeignClients注解,开启Feign的功能微服务
@SpringBootApplication @EnableEurekaClient //加下面这个 @EnableFeignClients public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } }
3.定义一个feign接口,经过@ FeignClient(“服务名”),来指定调用哪一个服务
好比在代码中调用了service-hi服务的“/hi”接口,代码以下:学习
@FeignClient("service-hi") public interface FeginClient { //service-hi服务中名字为"hi"的接口 @GetMapping("hi") String sayHi(); }
4.在controller层,对外暴露一个"hiFromFegin"的API接口,经过上面定义的Feign客户端sayHi 来消费服务spa
//编译器报错,无视。 //由于这个Bean是在程序启动的时候注入的,编译器感知不到,因此报错。 @Autowired private FeginClient feginClient; @GetMapping("hiFromFegin") public String hiFromFegin() { return feginClient.sayHi(); }
5.启动程序,屡次访问http://localhost:8861/hiFromFegin
,浏览器交替显示3d
hi!i am come from 8862hi! i am come from 8863
至此,使用Feign消费服务已实现,Feign内置ribbon,带负载均衡的效果rest
1.声明式的REST客户端,经过编写简单的接口和插入注解,只须要像调用本地方法同样调用它就能够完成服务请求及相关处理,使REST调用更加简单code
若使用RestTemplate,则须要深刻了解HTTP级别API的细节。
2.内置Ribbon,配合Eureka实现负载均衡
若是以为不错,分享给你的朋友!
THANDKS
一个立志成大腿而天天努力奋斗的年轻人
伴学习伴成长,成长之路你并不孤单!