springcloud(三):服務提供與呼叫
上一篇文章我們介紹了eureka服務註冊中心的搭建,這篇文章介紹一下如何使用eureka服務註冊中心,搭建一個簡單的服務端註冊服務,客戶端去呼叫服務使用的案例。願意瞭解原始碼的朋友直接求求交流分享技術:二一四七七七五六三三
案例中有三個角色:服務註冊中心、服務提供者、服務消費者,其中服務註冊中心就是我們上一篇的eureka單機版啟動既可,流程是首先啟動註冊中心,服務提供者生產服務並註冊到服務中心中,消費者從服務中心中獲取服務並執行。
服務提供
我們假設服務提供者有一個hello方法,可以根據傳入的引數,提供輸出“hello ,this is first messge”的服務
1、pom包配置
建立一個springboot專案,pom.xml中新增如下配置:
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
2、配置檔案
application.properties配置如下:
spring.application.name=spring-cloud-producer server.port=9000 eureka.client.serviceUrl.defaultZone=
3、啟動類
啟動類中新增@EnableDiscoveryClient註解
@SpringBootApplication @EnableDiscoveryClient public class ProducerApplication { public static void main(String[] args) { SpringApplication.run(ProducerApplication.class, args); } }
4、controller
提供hello服務
@RestController public class HelloController { @RequestMapping("/hello") public String index(@RequestParam String name) { return "hello "+name+",this is first messge"; } }
新增@EnableDiscoveryClient註解後,專案就具有了服務註冊的功能。啟動工程後,就可以在註冊中心的頁面看到SPRING-CLOUD-PRODUCER服務。
到此服務提供者配置就完成了。
服務呼叫
1、pom包配置
和服務提供者一致
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
2、配置檔案
application.properties配置如下:
spring.application.name=spring-cloud-consumer server.port=9001 eureka.client.serviceUrl.defaultZone=
3、啟動類
啟動類新增@EnableDiscoveryClient和@EnableFeignClients註解。
@SpringBootApplication @EnableDiscoveryClient @EnableFeignClients public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
@EnableDiscoveryClient :啟用服務註冊與發現
@EnableFeignClients:啟用feign進行遠端呼叫
Feign是一個宣告式Web Service客戶端。使用Feign能讓編寫Web Service客戶端更加簡單, 它的使用方法是定義一個介面,然後在上面新增註解,同時也支援JAX-RS標準的註解。Feign也支援可拔插式的編碼器和解碼器。Spring Cloud對Feign進行了封裝,使其支援了Spring MVC標準註解和HttpMessageConverters。Feign可以與Eureka和Ribbon組合使用以支援負載均衡。
4、feign呼叫實現
@FeignClient(name= "spring-cloud-producer") public interface HelloRemote { @RequestMapping(value = "/hello") public String hello(@RequestParam(value = "name") String name); }
name:遠端服務名,及spring.application.name配置的名稱
此類中的方法和遠端服務中contoller中的方法名和引數需保持一致。
5、web層呼叫遠端服務
將HelloRemote注入到controller層,像普通方法一樣去呼叫即可。
@RestController public class ConsumerController { @Autowired HelloRemote HelloRemote; @RequestMapping("/hello/{name}") public String index(@PathVariable("name") String name) { return HelloRemote.hello(name); } }
到此,最簡單的一個服務註冊與呼叫的例子就完成了。
整體程式碼結構如下:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31539957/viewspace-2221739/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 跟我學SpringCloud | 第三篇:服務的提供與Feign呼叫SpringGCCloud
- SpringCloud之服務提供與呼叫(Ribbon,Feign)SpringGCCloud
- 企業分散式微服務雲SpringCloud SpringBoot mybatis -服務提供與呼叫分散式微服務GCCloudSpring BootMyBatis
- SpringCloud之服務呼叫SpringGCCloud
- SpringCloud(二):服務呼叫與負載均衡SpringGCCloud負載
- SpringCloud 三種服務呼叫方式,你學會了嗎?SpringGCCloud
- 三. SpringCloud服務註冊與發現SpringGCCloud
- 企業級java springcloud b2bc商城系統開源原始碼二次開發(三):服務提供與呼叫JavaSpringGCCloud原始碼
- SpringCloud-使用Feign呼叫服務介面SpringGCCloud
- SpringCloud 9.OpenFeign服務介面呼叫SpringGCCloud
- 《springcloud 一》搭建註冊中心,服務提供者,服務消費者SpringGCCloud
- (22)SpringCloud-使用Feign呼叫服務介面SpringGCCloud
- SpringCloud入門(二)服務間呼叫和案例SpringGCCloud
- go微服務系列(三) - 服務呼叫(http)Go微服務HTTP
- SpringCloud系列之使用Feign進行服務呼叫SpringGCCloud
- SpringCloud之使用Feign跨服務呼叫最佳方式SpringGCCloud
- springcloud微服務實戰 學習筆記二 服務提供者SpringGCCloud微服務筆記
- SpringCloud Alibaba實戰(8:使用OpenFeign服務呼叫)SpringGCCloud
- SpringCloud 服務負載均衡和呼叫 Ribbon、OpenFeignSpringGCCloud負載
- 使用dubbo+zookeeper釋出服務與呼叫服務
- 微服務SpringCloud之服務註冊與發現微服務SpringGCCloud
- spring cloud構建網際網路分散式微服務雲平臺-服務提供與呼叫SpringCloud分散式微服務
- 五. SpringCloud服務降級與熔斷SpringGCCloud
- springcloud之服務註冊與發現SpringGCCloud
- SpringCloud(二)Eureka服務的搭建與使用SpringGCCloud
- OpenFeign 服務呼叫與負載負載
- ②SpringCloud 實戰:引入Feign元件,發起服務間呼叫SpringGCCloud元件
- SpringCloud核心教程 | 第三篇:服務註冊與發現 Eureka篇SpringGCCloud
- java版b2b2c社交電商spring cloud分散式微服務-服務提供與呼叫JavaSpringCloud分散式微服務
- Ceph提供nfs服務NFS
- SpringCloud(3)---Eureka服務註冊與發現SpringGCCloud
- SpringCloud服務的註冊與發現(Eureka)SpringGCCloud
- 本地服務呼叫K8S環境中的SpringCloud微服務實戰K8SSpringGCCloud微服務
- Spring Cloud(三) 服務提供者 Eureka + 服務消費者(rest + Ribbon)SpringCloudREST
- JavaEE進階知識學習-----SpringCloud(三)Eureka服務註冊與發現JavaSpringGCCloud
- springcloud微服務實戰 學習筆記三 服務消費者SpringGCCloud微服務筆記
- 使用swoole提供http服務HTTP
- SpringCloud之服務註冊SpringGCCloud