SPRINGCLOUD服务调用:FEIGN

大家好,我是IT修真院武汉分院第11期学员,一枚正直善良的java程序员。今天给大家分享一下,任务拓展:SPRINGCLOUD服务调用:FEIGN

1.背景介绍

什么是spring cloud?

spring cloud是一个基于spring boot实现的微服务架构开发工具。

  它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、

  分布式会话和集群状态管理等操作提供了一种简单的开发方式。

2.知识剖析

在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。

  Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。这里讲解下基于feign。

3.常见问题

客户端启动找不到datasource

4.解决方案

这是因为spring boot默认会加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类,

DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSource bean。

因为工程中没有关于dataSource相关的配置信息,当spring创建dataSource bean因缺少相关的信息就会报错。

5.编码实战

服务端配置


main方法上需要注解exclude=...

这是因为spring boot默认会加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类,DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSource bean。因为工程中没有关于dataSource相关的配置信息,当spring创建dataSource bean因缺少相关的信息就会报错。

因为我仅仅只是使用spring boot来写一些很简单的例子来学习它,在Application类上增加@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

阻止spring boot自动注入dataSource bean


客户端端口8765


服务端配置


实现类继承core包接口


端口8762,spring.application.name=service-hi,和服务端对应


注册中心已启动。

启动客户端,成功调用到服务端接口


6.扩展思考

ribbon+resttemplate和feign的区别

这两者的区别就是在客户端上,如何调用服务端。rebbon+resttemplate:使用resttemplate查找服务端url,这点和springrmi、tuscany很像,类似Name.LookingUp("url")一样


而feign则是在接口上注解@FeignClient,在其方法里注解和controller同样的@RequestMapping,两者的区别在于客户端的接口


7.参考文献

参考一:https://www.cnblogs.com/yql1986/p/6819097.html

参考二:http://blog.csdn.net/forezp/article/details/69808079

8.更多讨论



undefined_腾讯视频

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧

直接点击此链接:http://www.jnshu.com/login/1/18302507

你可能感兴趣的:(SPRINGCLOUD服务调用:FEIGN)