Spring Cloud Eureka 入門 (二)服務提供者詳解

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

?

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


“優秀不是過去是一種心態”


?
「Spring Cloud Eureka 入門系列」
Spring Cloud Eureka 入門 (一)服務注冊中心詳解
Spring Cloud Eureka 入門 (二)服務提供者詳解
Spring Cloud Eureka 入門 (三)服務消費者詳解

本文提綱
1.?springcloud-eureka-sample 工程結構
2. 運行?springcloud-eureka-client-provider 服務提供者工程
3. 詳解?springcloud-eureka-client-provider 服務提供者工程
?
一、springcloud-eureka-sample 工程結構
接著上一小節《Spring Cloud Eureka 入門 (一)服務注冊中心詳解》,我們成功運行了 Spring Cloud Eureka Server 工程作為服務注冊中心工程。這小節,我們寫一個作為客戶端的服務提供者工程,服務提供者向服務中心注冊或者下線服務實例。即圖中的右側 1 ,2 流程:
?

Eureka集群.jpeg



springcloud-eureka-sample 工程結構

├── springcloud-eureka-client-customer
├── springcloud-eureka-client-provider
└── springcloud-eureka-server


上面依次是?服務消費者工程、服務提供者工程和服務注冊中心工程。
?
二、運行?springcloud-eureka-client-provider 服務提供者工程
運行環境: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/ ... ample:

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


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

cd springcloud-learning-example
mvn clean install


3. 運行 Eureka 工程 springcloud-eureka-client-provider
啟動 springcloud-eureka-client-provider 工程啟動類 ProviderApplication,啟動服務注冊中心工程。
EurekaServerApplication 類路徑:/springcloud-learning-example/springcloud-eureka-sample/springcloud-eureka-client-provider/src/main/java/org/spring/springcloud/ProviderApplication.java

控制臺 Console 看到這類信息,代表啟動成功:

2017-07-10 16:03:15.075  INFO 11020 --- [           main] o.s.c.n.e.s.EurekaServiceRegistry        : Registering application provider-service with eureka with status UP
2017-07-10 16:03:15.075  INFO 11020 --- [           main] com.netflix.discovery.DiscoveryClient    : Saw local status change event StatusChangeEvent [timestamp=1499673795075, current=UP, previous=STARTING]
2017-07-10 16:03:15.079  INFO 11020 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_PROVIDER-SERVICE/10.18.29.31:provider-service:8080: registering service...
2017-07-10 16:03:15.126  INFO 11020 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_PROVIDER-SERVICE/10.18.29.31:provider-service:8080 - registration status: 204
2017-07-10 16:03:15.183  INFO 11020 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-07-10 16:03:15.185  INFO 11020 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8080
2017-07-10 16:03:15.191  INFO 11020 --- [           main] o.s.springcloud.ProviderApplication      : Started ProviderApplication in 9.809 seconds (JVM running for 10.981)


可以看出,注冊了應用名為 provider-service 的應用,該服務提供者的工程端口為 8080

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

WechatIMG442.jpeg


可以看到,服務提供者向服務注冊中心注冊自己的實例,展示了應用名和端口信息等。

三、詳解?springcloud-eureka-client-provider 服務提供者工程
1.springcloud-eureka-server ?工程目錄結構

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


ProviderApplication.java?Eureka Client 啟動類,啟動服務提供者工程
ProviderApplication.java Provider 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-provider</artifactId><version>0.0.1-SNAPSHOT</version><name>springcloud-eureka-client-provider :: 服務提供者</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 Client 依賴 --><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: 8080 # 服務端口
eureka:client:service-url:defaultZone: http://localhost:8888/eureka/ # 服務注冊中心地址
spring:application:name: provider-service # 服務名稱

- server.port 設置工程服務端口
-?eureka.client.service-url.defaultZone 設置服務注冊中心地址
?
4.注冊中心應用啟動類

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

@EnableEurekaClient 標志該應用作為?Eureka Client ,并會自動化讀取 Eureka 相關配置。

6.服務提供者 Hello World 案例

/*** Provider HelloWorld 案例* <p>* Created by bysocket on 06/22/17.*/
@RestController
public class ProviderController {private static final Logger LOGGER = LoggerFactory.getLogger(ProviderController.class);@Autowiredprivate Registration registration;       // 服務注冊@Autowiredprivate DiscoveryClient discoveryClient; // 服務發現客戶端@RequestMapping("/provider")public String provider() {ServiceInstance instance = serviceInstance();LOGGER.info("provider service, host = " + instance.getHost()+ ", service_id = " + instance.getServiceId());return "Hello,Provider!";}/*** 獲取當前服務的服務實例** @return ServiceInstance*/public ServiceInstance serviceInstance() {List<ServiceInstance> list = discoveryClient.getInstances(registration.getServiceId());if (list != null && list.size() > 0) {return list.get(0);}return null;}
}

可以看到注入了?Registration 和?DiscoveryClient 兩個對象:
-?Registration 服務注冊接口,包含了獲取服務 ID 的方法。
-?DiscoveryClient 服務發現客戶端,具有以下方法:
? ? ?- String description(); 獲取描述
? ? ?- ServiceInstance getLocalServiceInstance(); @Deprecated 方法被刪除,推薦不要使用。獲取本地服務實例
? ? ?- List<ServiceInstance> getInstances(String serviceId); ?通過服務 ID,獲取當前服務的服務實例
? ? ?- List<String> getServices(); 獲取所有服務 ID 列表

四、小結
此小章節介紹了如何 Eureka 作為服務提供者,并向服務注冊中心注冊自己實例。 下一小結講下?服務消費者詳解 具體是如何向服務注冊中心注冊自己,發現其他服務,并調用其他服務的。系列目錄如下:
Spring Cloud Eureka 入門 (一)服務注冊中心詳解
Spring Cloud Eureka 入門 (二)服務提供者詳解
Spring Cloud Eureka 入門 (三)服務消費者詳解

資料:
1.《Spring Cloud微服務實戰》
?

481AEC9F-3FE5-44C3-A61C-28D518CB9217.png



2. 官方文檔
http://cloud.spring.io/spring- ... EASE/


by 泥瓦匠博客
—?http://www.bysocket.com/
—?https://github.com/JeffLi1993
?

qrcode_for_gh_cd421e7eb7d6_430.jpg

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394985.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394985.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394985.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

題解 CF682C 【Alyona and the Tree】

簡單搜索題&#xff0c;我們每找到一組不滿足題目給出條件的點和邊就將其整個子樹刪除&#xff0c;然后最終答案加上該子樹的大小即可。注意&#xff0c;搜索的時候如果當前的邊權和sum已經為負了&#xff0c;應該將其改為0&#xff08;可以想想為什么&#xff09; 注&#xff…

現在mfc的現狀如何_天璣云客:微信代運營現在什么現狀?如何挑選合適的代運營公司?...

來源&#xff1a;天璣云客綜合整理團隊成員均來自“中國房地產策劃代理百強企業”TOP10以及”中國企業500強“TOP20企業并擔任重要職位。和你一起聊運營、產品、技術研發、房地產以及各種新興行業有哪些有趣的營銷玩法。由于微信公眾號/小程序的影響力日益增強&#xff0c;以及…

第五百一十八天 how can I 堅持

閑是真能閑出病來&#xff0c;無名的焦慮啊。不想這樣。 天越來越冷了。后天就放假了&#xff0c;有點小激動&#xff0c;這一天天的。 今晚沒玩游戲&#xff0c;看了會《微微一笑很傾城》&#xff0c;只能是崇拜那些玩游戲好的&#xff0c;就是玩不好&#xff0c;哎。。。 睡覺…

第三方登錄 人人php,人人網第三方登錄接口方案

之前閑暇有空,就去了解了下人人網的第三方登錄的接口,呵呵..發布想了解的都了解下.一. REST接口模式使用HTTP post 協議or HTTP get 協議發出請求.HTTP 協議同REST服務器通信.Java Struts 1.2 .do 的模式請求.代碼:1.URL編碼的示例代碼(java)&#xff1a; value java.net.UR…

easy ui dialog 關閉之后的怪異問題

最近在工作中使用easy ui做東西,然后發現了一些不可思議的現象,筆記一下,前事不忘后事之師!事故現場:增加頁面和修改頁面是分離的兩個jsp文件.在頁面加載時會用jquery去控制一些數據加載和一些邏輯.理論上來說不希望增加頁面和修改頁面互相干擾.單獨拿增加模塊測是正常的.加載修…

node.js gbk編碼_如何使用Node.js將Chrome的霸王龍編碼為電報游戲

node.js gbk編碼by Fernando Garca lvarez通過費爾南多加西亞阿爾瓦雷斯 如何使用Node.js將Chrome的霸王龍編碼為電報游戲 (How to code Chrome’s T-Rex as a Telegram game using Node.js) Last month I was really interested in learning how the Telegram game platform …

二進制文件更新程序_APR 6.17程序文件更新

蘭博基尼程序文件更新Lamborghini Huracan EURO MY2018 5.2L V10 DKBC 4T0907552L S0002 Stage 1 V1.1 [APR Mobile]奧迪程序文件更新Audi A3 / VW GTI NA MY2014 2.0TSI CNTC 5G0906259A S0001 Stage 1 V2.0.3 [2WD] [Single Program]Audi A3 / VW GTI NA MY2014 2.0TSI CNTC …

android 事件攔截 (Viewpager不可以左右滑動)

以前沒有做過真正的需求&#xff0c;所以從來沒有覺得事件攔截分發處理有什么好懂的。 現在做需求了&#xff0c;真的是什么需求都有&#xff0c;你作為開發都要去研究實現。比如說&#xff0c;只能點不能滑動的viewpager。其實這都可以不用viewpager了。直接用fragment的repl…

mysql安裝設置數據目錄下,linux下安裝mysql數據+配置

《linux下安裝mysql數據配置》由會員分享&#xff0c;可在線閱讀&#xff0c;更多相關《linux下安裝mysql數據配置(2頁珍藏版)》請在人人文庫網上搜索。1、Redhat下安裝MySQL數據庫 說明&#xff1a;安裝環境&#xff1a;本地VMWare虛擬機redhat MySQL安裝目錄&#xff1a;/hom…

力扣——k個一組翻轉鏈表

給出一個鏈表&#xff0c;每 k 個節點一組進行翻轉&#xff0c;并返回翻轉后的鏈表。 k 是一個正整數&#xff0c;它的值小于或等于鏈表的長度。如果節點總數不是 k 的整數倍&#xff0c;那么將最后剩余節點保持原有順序。 示例 : 給定這個鏈表&#xff1a;1->2->3->4…

撥盤Demo大賽,獲獎公布-20170710

2019獨角獸企業重金招聘Python工程師標準>>> 為了答謝微信小程序聯盟的新老會員&#xff0c;極樂科技支持舉辦的撥盤大賽終于落幕&#xff0c;本次大賽有662人關注&#xff0c;報名參賽8位&#xff0c;獲獎名單如下&#xff1a; ##一、獲得1000元現金獎勵的參賽者 會…

2018年編程語言排行榜_這是2018年學習的最佳編程語言

2018年編程語言排行榜by Alexander Petkov通過亞歷山大佩特科夫(Alexander Petkov) 這是2018年學習的最佳編程語言 (Here are the best programming languages to learn in 2018) This is the definitive guide for anyone wanting to choose the right programming language …

ZJUTACM

描述 這回是浙江工業大學的ACM程序設計競賽&#xff0c;歡迎你的到來!但是,請稍等!裁判Joe說了,必須正確回答他的問題,才可以看到PIPI的氣球MM,KUKU的氣球GG.Joe手上有7張卡片,每張卡片上有一個大寫字母,分別是Z,J,U,T,A,C,M.現在他開始表演魔術,每次只交換其中的兩張卡片.等表…

vscode 不能運行h5c3代碼_讓開發效率“飛起”的VS Code 插件

前言VSCode&#xff0c;是一個免費的、開源的跨平臺編輯器,也是我最滿意的編輯器之一。本文向大家推薦一些我喜歡的vscode插件&#xff0c;不出意外的話&#xff0c;這些插件將對你的工作效率提升有不小的幫助&#xff01;GitLensVS Code中的 Git 體驗在易用性和完整性之間取得…

dedecms plus/download.php,dedecms教程:DedeCMS 5.7SP1 /plus/download.php url重定向漏

最近使用scanv網站體檢發現有DedeCMS 5.7SP1 /plus/download.php url重定向漏洞(如下圖)&#xff0c;對比官方網站最新下載包發現該漏洞未進行補丁&#xff0c;但官方自身網站已經補上了&#xff0c;而官方演示站點均未補上。參考了下網上給出的漏洞原因和解決思路如下&#xf…

C language day1

2019獨角獸企業重金招聘Python工程師標準>>> http://www.eclipsecolorthemes.org/?viewtheme&id66設置eclispe編輯器主題 http://www.cnblogs.com/csulennon/p/4231405.html 配置黑色主題 Dogs.c 第一段代碼片段 /*Name : Dogs.cAuthor : MichaelV…

Xftp遠程連接出現“無法顯示文件夾”的問題補充

網上有很多朋友出現相同的問題&#xff0c;各位熱心網友都給出了自己的解決方案&#xff0c;其中大多數網友給出的解決方案都是&#xff1a;將Xftp更換成“被動連接模式”。但是很不幸的是&#xff0c;本人通過這種方式并沒有得到有效的解決&#xff0c;網上的各大方法都嘗試&a…

Bootstrap中水平排列的表單form-inline

1 <html>2 <head>3 <title>初識Bootstrap</title>4 <meta charset"utf-8">5 <meta name"viewport" content"widthdevice-width, initial-scale1.0">6 <link rel"stylesheet" href"http:/…

minio 授予永久訪問權限_應對 iOS 14 權限管理 應用手把手教你打開“所有照片”權限...

DoNews 11月3日消息(記者 劉文軒)蘋果在 iOS 14 中帶來全新的隱私管理功能&#xff0c;其中最亮眼的就是相冊權限方面&#xff0c;可以為應用程序授予單獨授予某張照片的訪問權限&#xff0c;無需交出整個相冊。作為 iOS 14 主推新功能之一&#xff0c;這項功能也很快得到開發者…

ios pusher使用_使用.NET和Pusher構建實時評論功能

ios pusher使用by Ogundipe Samuel由Ogundipe Samuel 使用.NET和Pusher構建實時評論功能 (Build a real-time commenting feature using .NET and Pusher) Today, we will build a mini-blog engine with live commentary features using .NET and Pusher.今天&#xff0c;我們…