1. 程式人生 > >springcloud(三):服務提供與呼叫

springcloud(三):服務提供與呼叫

上一篇文章我們介紹了eureka服務註冊中心的搭建,這篇文章介紹一下如何使用eureka服務註冊中心,搭建一個簡單的服務端註冊服務,客戶端去呼叫服務使用的案例。

案例中有三個角色:服務註冊中心、服務提供者、服務消費者,其中服務註冊中心就是我們上一篇的eureka單機版啟動既可,流程是首先啟動註冊中心,服務提供者生產服務並註冊到服務中心中,消費者從服務中心中獲取服務並執行。

服務提供

我們假設服務提供者有一個hello方法,可以根據傳入的引數,提供輸出“hello xxx,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=http://localhost:8000/eureka/

引數在上一篇都已經解釋過,這裡不多說。

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=http://localhost:8000/eureka/

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);
    }

}

到此,最簡單的一個服務註冊與呼叫的例子就完成了。

測試

簡單呼叫

依次啟動spring-cloud-eureka、spring-cloud-producer、spring-cloud-consumer三個專案

先輸入:http://localhost:9000/hello?name=neo 檢查spring-cloud-producer服務是否正常

返回:hello neo,this is first messge

說明spring-cloud-producer正常啟動,提供的服務也正常。

瀏覽器中輸入:http://localhost:9001/hello/neo

返回:hello neo,this is first messge

說明客戶端已經成功的通過feign呼叫了遠端服務hello,並且將結果返回到了瀏覽器。

負載均衡

以上面spring-cloud-producer為例子修改,將其中的controller改動如下:

@RestController
public 
            
           

相關推薦

springcloud()服務提供呼叫

上一篇文章我們介紹了eureka服務註冊中心的搭建,這篇文章介紹一下如何使用eureka服務註冊中心,搭建一個簡單的服務端註冊服務,客戶端去呼叫服務使用的案例。 案例中有三個角色:服務註冊中心、服務提供者、服務消費者,其中服務註冊中心就是我們上一篇的eureka單機版啟

springcloud()服務提供調用

遠程服務 ssg message rem 分享圖片 clas XML boot first 上一篇文章我們介紹了eureka服務註冊中心的搭建,這篇文章介紹一下如何使用eureka服務註冊中心,搭建一個簡單的服務端註冊服務,客戶端去調用服務使用的案例。願意了解源碼的朋友直接

JAVA ssm b2b2c多使用者商城系統原始碼()服務提供呼叫

上一篇文章我們介紹了eureka服務註冊中心的搭建,這篇文章介紹一下如何使用eureka服務註冊中心,搭建一個簡單的服務端註冊服務,客戶端去呼叫服務使用的案例。 案例中有三個角色:服務註冊中心、服務提供者、服務消費者,其中服務註冊中心就是我們上一篇的eureka單機版啟動既可,流程是首先啟動註冊

springcloud Spring Boot mybatis分布式微服務雲架構()服務提供調用

客戶端 生產 pat 簡單的 第一次 his 流程 如何 localhost 上一篇文章我們介紹了eureka服務註冊中心的搭建,這篇文章介紹一下如何使用eureka服務註冊中心,搭建一個簡單的服務端註冊服務,客戶端去調用服務使用的案例。 案例中有三個角色:服務註冊中心、服

Spring Cloud服務提供呼叫(03)

上一篇文章我們介紹了eureka服務註冊中心的搭建,這篇文章介紹一下如何使用eureka服務註冊中心,搭建一個簡單的服務端註冊服務,客戶端去呼叫服務使用的案例。 案例中有三個角色:服務註冊中心、服務提供者、服務消費者,其中服務註冊中心就是我們上一篇的eureka單機版啟動既可,流程是首先啟動註冊

Spring Cloud(服務提供調用 Eureka【Finchley 版】

fan default fun cer 觀察 微服務 divide 動態 erl Spring Cloud(三):服務提供與調用 Eureka【Finchley 版】 發表於 2018-04-15 | 更新於 2018-05-07 | 上一篇文章我們介紹了 Eure

SpringCloud服務提供呼叫(Ribbon,Feign)

本系列介紹的配置均基於 Spring Boot 2.0.1.RELEASE 版本和 Spring Cloud Finchley.SR1 eureka註冊續約流程 啟動註冊中心 服務提供者生產服務並註冊到服務中心中 消費者從服務中心中獲取服務並執行

第二章、spring cloud服務註冊中心eureka---服務提供呼叫

服務提供與呼叫 案例中有三個角色:服務註冊中心、服務提供者、服務消費者,其中服務註冊中心就是我們上一篇的eureka單機版啟動既可,流程是首先啟動註冊中心,服務提供者生產服務並註冊到服務中心中,消費者從服務中心中獲取服務並執行。 02eureka-pro

(二)服務提供呼叫

案例中有三個角色:服務註冊中心、服務提供者、服務消費者,其中服務註冊中心就是我們上一篇的eureka單機版啟動既可,流程是首先啟動註冊中心,服務提供者生產服務並註冊到服務中心中,消費者從服務中心中獲取服務並執行。 服務提供 我們假設服務提供者有一個hello方法,可以根據傳入的引數,提供輸出“h

小白學SpringCloud(二)服務間的呼叫

SpringCloud服務間的呼叫有兩種方式:RestTemplate和FeignClient。不管是什麼方式,他都是通過REST介面呼叫服務的http介面,引數和結果預設都是通過jackson序列化和反序列化。 一、Ribbon簡介 在說這兩種方式之前

springcloud學習筆記二服務提供、消費ribbon

在學習筆記一里,我們簡單實現了一個註冊中心,我們就可以在上面進行服務的註冊與訂閱消費。 編寫服務,進行註冊 同樣,我們可以在STS中右鍵New->Spring Starter Project ,填寫相應內容->點選next 選擇需要的依賴包,我們這裡由於是構建一個服務提供

SpringCloud進擊 | 一淺出服務註冊發現(Eureka)【Finchley版本】

1.前言 Spring Cloud 已經幫我們實現了服務註冊中心,我們只需要很簡單的幾個步驟就可以完成。關於理論知識,我想大家都已經有不同程度上的瞭解和認識,這裡,我們最後再進行總結。本系列 Spring Cloud 介紹基於 Spring Boot 2.0.5 版本和 Spring C

Choerodon 的微服務之路(服務註冊發現

本文是 Choerodon 的微服務之路系列推文第三篇。在上一篇《Choerodon的微服務之路(二):微服務閘道器》中,介紹了Choerodon 在搭建微服務閘道器時考慮的一些問題以及兩種常見的微服務閘道器模式,並且通過程式碼介紹了Choerodon 的閘道器是如何實現的。本篇文章將介紹Choer

關於SpringCloud服務雲架構構建B2B2C電子商務平臺分析服務註冊發現(Eureka、Consul)

Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式。 Spring

Spring Cloud 之服務發現呼叫-Ribbon

1. 簡介 Ribbon is a client side load balancer which gives you a lot of control over the behaviour of HTTP and TCP clients. F

SpringCloud踩坑筆記()-------服務註冊消費

本文建立在上一篇文章《SpringCloud踩坑筆記(二)-------Eureka》之上。啟動 Eureka Server 之後,我們將註冊一個服務到 Eureka Server 中,然後嘗試去消費它。 一、建立服務提供者        

.net framework 4.5 +steeltoe+ springcloud(二) 實現服務發現呼叫功能

首先,寫一個簡單的可被呼叫的服務註冊到服務中心,我們這命名為java-service,用的是IDEA建立一個spring boot專案,選擇spring client型別。 修改application.properties,配置服務中心地址和服務埠號: spring.application.n

SpringCloud教程一服務註冊發現(Eureka)

Spring CloudSpring Cloud為開發人員提供了快速構建分散式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排)。分散式系統的協調導致了樣板模式,

SpringCloud 學習記錄(一)服務註冊發現(eureka+feign)

前面介紹過dubbo遠端介面呼叫的簡單使用,這裡我們將開始學習如何使用springcloud微服務架構中的服務註冊與發現。 一,eureka-server eureka分為服務端和客戶端兩部分, eureka server是一個服務註冊中心,類似於zookeeper,當

springCloud--補充返回jsonxml格式

spring cloud 返回json與xml格式 [email protected]/* */,現在還沒有找到原因,使用如下可以如常的返回json格式:@RestController public class UserController { @Autowired pri