Springboot2XConsul中怎么利用Feign調(diào)用服務(wù),針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
在和田等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷(xiāo),成都外貿(mào)網(wǎng)站建設(shè),和田網(wǎng)站建設(shè)費(fèi)用合理。
服務(wù)調(diào)用有兩種方式:
A.使用RestTemplate 進(jìn)行服務(wù)調(diào)用
B.使用Feign 進(jìn)行聲明式服務(wù)調(diào)用
上一次寫(xiě)了使用RestTemplate的方式,這次使用Feign的方式實(shí)現(xiàn)
服務(wù)注冊(cè)發(fā)現(xiàn)中心使用Consul
啟動(dòng)Consul
consul agent -dev
spring boot 版本 2.2.1.RELEASE
1.服務(wù)端
provider
(1)添加依賴(lài)
(2)修改配置
server.port=8010spring.application.name=providerspring.cloud.consul.host=localhostspring.cloud.consul.port=8500spring.cloud.consul.discovery.health-check-path=/actuator/healthspring.cloud.consul.discovery.service-name=service-providerspring.cloud.consul.discovery.heartbeat.enabled=truemanagement.endpoints.web.exposure.include=*management.endpoint.health.show-details=always
(3)測(cè)試方法
package com.xyz.provider.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class demoController { @RequestMapping("/hello") public String Hello(){ return "hello,provider"; }}
provider1
修改端口為8011
修改測(cè)試方法
package com.xyz.provider1.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class demoController { @RequestMapping("/hello") public String Hello(){ return "hello,another provider"; }}
啟動(dòng)provider和provider1
2.客戶(hù)端
customer
(1)添加依賴(lài)
(2)配置
server.port=8015spring.application.name=xyz-comsumerspring.cloud.consul.host=localhostspring.cloud.consul.port=8500spring.cloud.consul.discovery.register=falsespring.cloud.consul.discovery.health-check-url=/actuator/healthspring.cloud.consul.discovery.heartbeat.enabled=truemanagement.endpoints.web.exposure.include=*management.endpoint.health.show-details=always
(3)修改啟動(dòng)類(lèi)
添加注解 @EnableFeignClients,開(kāi)啟掃描Spring Cloud Feign客戶(hù)端的功能
package com.xyz.comsumer;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.springframework.context.annotation.Bean;import org.springframework.web.client.RestTemplate;@EnableFeignClients@SpringBootApplicationpublic class ComsumerApplication { public static void main(String[] args) { SpringApplication.run(ComsumerApplication.class, args); }}
(4)添加Feign接口
添加注解@FeignClient(name = "provider")
provider是要調(diào)用的服務(wù)名
說(shuō)明:
添加跟調(diào)用目標(biāo)方法一樣的方法聲明,必須跟目標(biāo)方法的定義一致
package com.xyz.consumer.controller;import org.springframework.cloud.openfeign.FeignClient;import org.springframework.web.bind.annotation.RequestMapping;@FeignClient(name = "provider")public interface ProviderService { @RequestMapping("/hello") public String hello();}
(4)服務(wù)調(diào)用
注入剛才聲明的ProviderService,就可以像本地方法一樣進(jìn)行調(diào)用了
package com.xyz.consumer.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class FeignController { @Autowired private ProviderService providerService; @RequestMapping("/call") public String call() { return providerService.hello(); }}
啟動(dòng)customer
訪(fǎng)問(wèn)http://localhost:8015/call
交替返回結(jié)果
hello,provider 或 hello,another provider
關(guān)于Springboot2XConsul中怎么利用Feign調(diào)用服務(wù)問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。