大家好,我是IT修真院武漢分院第11期學(xué)員举反,一枚正直善良的java程序員懊直。今天給大家分享一下,任務(wù)拓展:SPRINGCLOUD服務(wù)調(diào)用:FEIGN
1.背景介紹
什么是spring cloud火鼻?
spring cloud是一個基于spring boot實現(xiàn)的微服務(wù)架構(gòu)開發(fā)工具室囊。
? 它為微服務(wù)架構(gòu)中涉及的配置管理、服務(wù)治理魁索、斷路器融撞、智能路由、微代理粗蔚、控制總線尝偎、全局鎖、決策競選、
? 分布式會話和集群狀態(tài)管理等操作提供了一種簡單的開發(fā)方式致扯。
2.知識剖析
在微服務(wù)架構(gòu)中肤寝,業(yè)務(wù)都會被拆分成一個獨立的服務(wù),服務(wù)與服務(wù)的通訊是基于http restful的抖僵。
? Spring cloud有兩種服務(wù)調(diào)用方式鲤看,一種是ribbon+restTemplate,另一種是feign耍群。這里講解下基于feign义桂。
3.常見問題
客戶端啟動找不到datasource
4.解決方案
這是因為spring boot默認(rèn)會加載org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration類,
DataSourceAutoConfiguration類使用了@Configuration注解向spring注入了dataSource bean蹈垢。
因為工程中沒有關(guān)于dataSource相關(guān)的配置信息慷吊,當(dāng)spring創(chuàng)建dataSource bean因缺少相關(guān)的信息就會報錯。
5.編碼實戰(zhàn)
服務(wù)端配置
main方法上需要注解exclude=...
這是因為spring boot默認(rèn)會加載org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration類曹抬,DataSourceAutoConfiguration類使用了@Configuration注解向spring注入了dataSource bean溉瓶。因為工程中沒有關(guān)于dataSource相關(guān)的配置信息,當(dāng)spring創(chuàng)建dataSource bean因缺少相關(guān)的信息就會報錯谤民。
因為我僅僅只是使用spring boot來寫一些很簡單的例子來學(xué)習(xí)它嚷闭,在Application類上增加@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
阻止spring boot自動注入dataSource bean
客戶端端口8765
服務(wù)端配置
實現(xiàn)類繼承core包接口
端口8762,spring.application.name=service-hi赖临,和服務(wù)端對應(yīng)
注冊中心已啟動胞锰。
啟動客戶端,成功調(diào)用到服務(wù)端接口
6.擴展思考
ribbon+resttemplate和feign的區(qū)別
這兩者的區(qū)別就是在客戶端上兢榨,如何調(diào)用服務(wù)端嗅榕。rebbon+resttemplate:使用resttemplate查找服務(wù)端url,這點和springrmi吵聪、tuscany很像凌那,類似Name.LookingUp("url")一樣
而feign則是在接口上注解@FeignClient,在其方法里注解和controller同樣的@RequestMapping吟逝,兩者的區(qū)別在于客戶端的接口
7.參考文獻
參考一:https://www.cnblogs.com/yql1986/p/6819097.html
參考二:http://blog.csdn.net/forezp/article/details/69808079
8.更多討論
技能樹.IT修真院
“我們相信人人都可以成為一個工程師帽蝶,現(xiàn)在開始,找個師兄块攒,帶你入門励稳,掌控自己學(xué)習(xí)的節(jié)奏,學(xué)習(xí)的路上不再迷镁阅幔”。
這里是技能樹.IT修真院新翎,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線程帕,學(xué)習(xí)透明化地啰,成長可見化愁拭,師兄1對1免費指導(dǎo)】髁撸快來與我一起學(xué)習(xí)吧