成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Cloud構建微服務架構:服務消費(基礎)

企業動態
在Spring Cloud Commons中提供了大量的與服務治理相關的抽象接口,包括DiscoveryClient、這里我們即將介紹的LoadBalancerClient等。對于這些接口的定義我們在上一篇介紹服務注冊與發現時已經說過,Spring Cloud做這一層抽象,很好的解耦了服務治理體系,使得我們可以輕易的替換不同的服務治理設施。

[[194926]]

通過上一篇《Spring Cloud構建微服務架構:服務注冊與發現》,我們已經成功地將服務提供者:eureka-client或consul-client注冊到了Eureka服務注冊中心或Consul服務端上了,同時我們也通過DiscoveryClient接口的getServices獲取了當前客戶端緩存的所有服務清單,那么接下來我們要學習的就是:如何去消費服務提供者的接口?

使用LoadBalancerClient

在Spring Cloud Commons中提供了大量的與服務治理相關的抽象接口,包括DiscoveryClient、這里我們即將介紹的LoadBalancerClient等。對于這些接口的定義我們在上一篇介紹服務注冊與發現時已經說過,Spring Cloud做這一層抽象,很好的解耦了服務治理體系,使得我們可以輕易的替換不同的服務治理設施。

從LoadBalancerClient接口的命名中,我們就知道這是一個負載均衡客戶端的抽象定義,下面我們就看看如何使用Spring Cloud提供的負載均衡器客戶端接口來實現服務的消費。

下面的例子,我們將利用上一篇中構建的eureka-server作為服務注冊中心、eureka-client作為服務提供者作為基礎。

  • 我們先來創建一個服務消費者工程,命名為:eureka-consumer。并在pom.xml中引入依賴(這里省略了parent和dependencyManagement的配置):
  1. <dependencies> 
  2.     <dependency> 
  3.         <groupId>org.springframework.cloud</groupId> 
  4.         <artifactId>spring-cloud-starter-eureka</artifactId> 
  5.     </dependency> 
  6.     <dependency> 
  7.         <groupId>org.springframework.boot</groupId> 
  8.         <artifactId>spring-boot-starter-web</artifactId> 
  9.     </dependency> 
  10.     <dependency> 
  11.         <groupId>org.springframework.boot</groupId> 
  12.         <artifactId>spring-boot-starter-actuator</artifactId> 
  13.     </dependency> 
  14. </dependencies> 
  • 配置application.properties,指定eureka注冊中心的地址:
  1. spring.application.name=eureka-consumer 
  2. server.port=2101 
  3. eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/ 
  • 創建應用主類。初始化RestTemplate,用來真正發起REST請求。@EnableDiscoveryClient注解用來將當前應用加入到服務治理體系中。
  1. @EnableDiscoveryClient 
  2. @SpringBootApplication 
  3. public class Application { 
  4.     @Bean 
  5.     public RestTemplate restTemplate() { 
  6.         return new RestTemplate(); 
  7.     } 
  8.     public static void main(String[] args) { 
  9.         new SpringApplicationBuilder(Application.class).web(true).run(args); 
  10.     } 
  • 創建一個接口用來消費eureka-client提供的接口:
  1. @RestController 
  2. public class DcController { 
  3.     @Autowired 
  4.     LoadBalancerClient loadBalancerClient; 
  5.     @Autowired 
  6.     RestTemplate restTemplate; 
  7.     @GetMapping("/consumer"
  8.     public String dc() { 
  9.         ServiceInstance serviceInstance = loadBalancerClient.choose("eureka-client"); 
  10.         String url = "http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + "/dc"
  11.         System.out.println(url); 
  12.         return restTemplate.getForObject(url, String.class); 
  13.     } 

可以看到這里,我們注入了LoadBalancerClient和RestTemplate,并在/consumer接口的實現中,先通過loadBalancerClient的choose函數來負載均衡的選出一個eureka-client的服務實例,這個服務實例的基本信息存儲在ServiceInstance中,然后通過這些對象中的信息拼接出訪問/dc接口的詳細地址,***再利用RestTemplate對象實現對服務提供者接口的調用。

在完成了上面你的代碼編寫之后,讀者可以將eureka-server、eureka-client、eureka-consumer都啟動起來,然后訪問http://localhost:2101/consumer ,來跟蹤觀察eureka-consumer服務是如何消費eureka-client服務的/dc接口的。

consul版的示例,可查看git倉庫中的consul-client和consul-consumer

代碼示例

樣例工程將沿用之前在碼云和GitHub上創建的SpringCloud-Learning項目,重新做了一下整理。通過不同目錄來區分Brixton和Dalston的示例。

碼云:點擊查看

GitHub:點擊查看

具體工程說明如下:

  • eureka的服務注冊中心:eureka-server
  • eureka的服務提供方:eureka-client
  • eureka的服務消費者:eureka-consumer
  • consul的服務提供方:consul-client
  • consul的服務消費者:consul-consumer

【本文為51CTO專欄作者“翟永超”的原創稿件,轉載請通過51CTO聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-08-10 11:15:05

Spring Clou微服務架構

2017-08-09 15:50:47

Spring Clou微服務架構

2017-09-04 16:15:44

服務網關架構

2017-07-03 09:50:07

Spring Clou微服務架構

2017-12-20 15:37:39

Spring Clou微服務架構

2017-06-25 13:33:25

Spring Clou微服務架構

2017-07-04 17:35:46

微服務架構Spring Clou

2018-03-02 16:11:29

Spring Clou分布式服務跟蹤

2018-07-09 09:27:10

Spring Clou微服務架構

2018-04-16 14:56:56

微服務架構分布式服務

2018-04-18 16:07:49

Spring Clou微服務分布式

2017-09-09 23:15:20

Spring Clou微服務架構路由

2018-03-13 16:42:26

分布式服務跟蹤

2018-04-09 13:56:13

微服務架構分布式

2018-04-02 15:01:31

微服務架構分布式服務

2017-09-15 23:29:53

Spring Clou微服務架構過濾器

2017-07-28 16:41:53

Spring Clou微服務架構

2018-05-23 15:58:27

Spring Clou微服務架構

2018-07-19 14:58:14

Spring Clou微服務架構

2017-09-05 14:05:11

微服務spring clou路由
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品视频在线一区 | 国产va| 一区二区视频 | 国产成人在线一区 | 日韩福利 | 免费在线观看一区二区 | 天堂av中文在线 | 久久久久久美女 | 免费av在线 | 国产精品亚洲欧美日韩一区在线 | 久久精品小短片 | 8x国产精品视频一区二区 | 亚洲一区二区久久 | 一区二区三区成人 | 久久久久久久久久久久久久久久久久久久 | 欧美日韩免费 | 久久国产精品亚洲 | 久久黄色| 一级做a爰片久久毛片免费看 | 久久一区二区三区四区 | 青青久久 | 中文字幕高清免费日韩视频在线 | 欧美成人免费在线 | 色影视| 亚洲一区影院 | 九九精品在线 | 欧美视频在线播放 | 亚洲日本成人 | av影音 | 黄色一级视频 | 成年视频在线观看福利资源 | 一级黄a视频 | 免费看国产片在线观看 | 国产精品成人在线播放 | 91精品国产91久久久久久吃药 | 亚洲精品成人免费 | 亚洲国产精品一区二区三区 | 亚洲乱码国产乱码精品精98午夜 | av网站在线免费观看 | 99久久免费观看 | 在线视频中文字幕 |