日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud Eureka 入门 (三)服务消费者详解

發布時間:2025/3/21 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud Eureka 入门 (三)服务消费者详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

摘要: 原創出處:www.bysocket.com 泥瓦匠BYSocket 希望轉載,保留摘要,謝謝!


“真正的進步,不在于學習,而在于反思”


?
「Spring Cloud Eureka 入門系列」

  • Spring Cloud Eureka 入門 (一)服務注冊中心詳解
  • Spring Cloud Eureka 入門 (二)服務提供者詳解
  • Spring Cloud Eureka 入門 (三)服務消費者詳解


本文提綱
1. ?springcloud-eureka-sample 工程介紹
2. 運行 springcloud-eureka-client-customer 服務消費者工程
3. 詳解?springcloud-eureka-client-customer 服務消費者工程


一、springcloud-eureka-sample 工程介紹
?
還是回到Eureka 集群簡單架構圖:
?



第一小節《Spring Cloud Eureka 入門 (一)服務注冊中心詳解》實現了 Eureka Server 作為注冊中心,
第二小節《Spring Cloud Eureka 入門 (二)服務提供者詳解》是 Provider Service B 的案例,實現了 Eureka Cleint 作為服務提供者,包括其服務的注冊和心跳的功能。
本小節,是 Provider Service A 的案例,實現了 Eureka Cleint 作為服務消費者,包括其服務的注冊和心跳的功能,還有其服務發現和通過 Ribbon 進行服務調用的功能。

springcloud-eureka-client-customer? 服務消費者工程,他本身也是一個服務提供者。即具有服務提供功能和服務消費功能。下面去運行該工程

二、運行?springcloud-eureka-client-customer 服務消費者工程
運行環境:JDK 7 或 8,Maven 3.0+
技術棧:Spring Cloud?Dalston.SR1、?spring-cloud-netflix 1.3.1、Spring Boot 1.5.4

自然,我們先得去上一小節《Spring Cloud Eureka 入門 (一)服務注冊中心詳解》 ,把注冊中心工程啟動完畢。

1.?git clone 下載工程?springcloud-learning-example
項目地址見 GitHub -?https://github.com/JeffLi1993/springcloud-learning-example:?
?

git clone https://github.com/JeffLi1993/ ... e.git


?
2. Maven 編譯安裝這個工程:

cd springcloud-learning-example mvn clean install



3. 運行 Eureka 工程?springcloud-eureka-client-customer
啟動?springcloud-eureka-client-customer 工程啟動類 CustomerApplication,啟動服務注冊中心工程。
EurekaServerApplication 類路徑:/springcloud-learning-example/springcloud-eureka-sample/springcloud-eureka-client-customer/src/main/java/org/spring/springcloud/CustomerApplication.java
?
控制臺 Console 看到這類信息,代表啟動成功:

2017-07-12 18:19:21.725 INFO 11314 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_CUSTOMER-SERVICE/10.18.29.64:customer-service:8081: registering service... 2017-07-12 18:19:21.814 INFO 11314 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_CUSTOMER-SERVICE/10.18.29.64:customer-service:8081 - registration status: 204 2017-07-12 18:19:21.916 INFO 11314 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8081 (http) 2017-07-12 18:19:21.918 INFO 11314 --- [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8081 2017-07-12 18:19:21.925 INFO 11314 --- [ main] o.s.springcloud.CustomerApplication : Started CustomerApplication in 17.075 seconds (JVM running for 18.141)

可以看出,注冊了應用名為?CUSTOMER-SERVICE 的應用,該服務提供者的工程端口為 8081

4. 訪問?Eureka 注冊中心可視化界面
打開瀏覽器,訪問?http://localhost:8888/?,如圖所示:
?



可以看到,服務提供者向服務注冊中心注冊自己的實例,展示了應用名和端口信息等。
5.訪問服務消費者案例
打開瀏覽器,訪問?http://localhost:8081/customer,如圖所示:?
?
?



可以看出,下面一句消息 Hello,Provider! ,是服務消費者調用服務提供者獲取的信息。
?

三、詳解?springcloud-eureka-client-customer 服務消費者工程
1.springcloud-eureka-client-customer 工程目錄結構

├── pom.xml └── src└── main├── java│ └── org│ └── spring│ ├── springcloud│ │ └── CustomerApplication.java│ └── web│ └── CustomerController.java└── resources└── application.yml


ProviderApplication.java?Eureka Discovery Client 啟動類,啟動服務消費者工程,本身也會注冊到注冊中心,也能發現其他服務。
CustomerController.java?服務消費者 HelloWorld 案例
application.yml 配置文件
?

2. pom.xml 配置

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/ma ... gt%3B<modelVersion>4.0.0</modelVersion><groupId>springcloud</groupId><artifactId>springcloud-eureka-client-customer</artifactId><version>0.0.1-SNAPSHOT</version><name>springcloud-eureka-client-customer :: 服務消費者</name><!-- Spring Boot 啟動父依賴 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.4.RELEASE</version></parent><dependencies><!-- Spring Cloud Netflix Eureka 依賴 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><!-- Spring Boot Test 依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><!-- Spring Cloud Netflix 依賴 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-netflix</artifactId><version>1.3.1.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build> </project>

使用的依賴是
- spring-cloud-netflix 1.3.1 是 Spring Cloud?Dalston.SR1 版本。
-?spring-cloud-starter-eureka Eureka Client 模塊依賴,包含了客戶端 client 的依賴,還有 Ribbon 的依賴,如:org.springframework.cloud:spring-cloud-netflix-eureka-client:1.3.1.RELEASE
org.springframework.cloud:spring-cloud-starter-ribbon:1.3.1.RELEASE
?

3. application.yml 配置

server:port: 8081 # 服務端口 eureka:client:service-url:defaultZone: http://localhost:8888/eureka/ # 服務注冊中心地址 spring:application:name: customer-service # 服務名稱 - server.port 設置工程服務端口 - eureka.client.service-url.defaultZone 設置服務注冊中心地址


4.服務消費者應用啟動類

/*** Spring Boot Eureka Server 應用啟動類** Created by bysocket on 21/06/17.*/ @EnableDiscoveryClient // Eureka Discovery Client 標識 @SpringBootApplication // Spring Boot 應用標識 public class CustomerApplication {@Bean@LoadBalancedRestTemplate restTemplate() {return new RestTemplate();}public static void main(String args) {// 程序啟動入口// 啟動嵌入式的 Tomcat 并初始化 Spring 環境及其各 Spring 組件SpringApplication.run(CustomerApplication.class,args);} }


@EnableDiscoveryClient 標志該應用作為?Eureka Client ,并會自動化讀取 Eureka 相關配置。還有向服務注冊中心發現服務并進行調用。
@LoadBalanced 標志著 RestTemplate 是通過?Ribbon 客戶端負載均衡去調用服務提供者集群的。即可以在獲取的服務提供者實例列表中,通過 Ribbon 進行選擇某實例,然后調用該服務實例。

6.服務消費者 Hello World 案例

/*** Customer HelloWorld 案例* <p>* Created by bysocket on 06/22/17.*/ @RestController public class CustomerController {private static final Logger LOGGER = LoggerFactory.getLogger(CustomerController.class);@Autowiredprivate RestTemplate restTemplate; // HTTP 訪問操作類@RequestMapping("/customer")public String customer() {String providerMsg = restTemplate.getForEntity("http://PROVIDER-SERVICE/provider",String.class).getBody();return "Hello,Customer! msg from provider : <br/><br/> " + providerMsg;} }

可以看到注入了?RestTemplate 對象,它是 HTTP 訪問操作類。
然后?customer 方法,通過 restTemplate 通過 HTTP 協議調用服務提供者暴露的?provider 接口,并獲取服務提供者的結果。然后組裝輸出。

四、小結
此小章節介紹了如何 Eureka 作為服務消費者,并向服務注冊中心注冊自己實例,更重要的是發現其他服務,并調用其他服務。?
這是 Spring Cloud Eureka 入門系列完結:

  • Spring Cloud Eureka 入門 (一)服務注冊中心詳解
  • Spring Cloud Eureka 入門 (二)服務提供者詳解
  • Spring Cloud Eureka 入門 (三)服務消費者詳解


推薦:springcloud-learning-example?開源項目?https://github.com/JeffLi1993/ ... e.git
資料:
《Spring Cloud微服務實戰》

轉載于:https://my.oschina.net/jeffli1993/blog/1438913

總結

以上是生活随笔為你收集整理的Spring Cloud Eureka 入门 (三)服务消费者详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。