最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

java架構(gòu)師高端課微服務(wù)_02_SpringCloud_Netflix_Eureka

2020-07-04 16:59 作者:自學(xué)Python的小姐姐呀  | 我要投稿

Spring Cloud?Netflix Eureka

主要內(nèi)容

Eureka簡介

Eureka和Zookeeper 對比

搭建Eureka注冊中心

Eureka 服務(wù)管理平臺介紹

搭建高可用集群

集群原理

Eureka優(yōu)雅停服

學(xué)習(xí)目標(biāo)

Spring Cloud?Netflix Eureka

一、?Eureka簡介

Eureka是Netflix開發(fā)的服務(wù)發(fā)現(xiàn)框架,本身是一個(gè)基于REST的服務(wù),主要用于定位運(yùn)行在AWS域中的中間層服務(wù),以達(dá)到負(fù)載均衡和中間層服務(wù)故障轉(zhuǎn)移的目的。

SpringCloud將它集成在其子項(xiàng)目spring-cloud-netflix中,以實(shí)現(xiàn)SpringCloud的服務(wù)發(fā)現(xiàn)功能。

1?Eureka組件

Eureka包含兩個(gè)組件:Eureka Server和Eureka Client。

1.1?Eureka Server

Eureka Server提供服務(wù)注冊服務(wù),各個(gè)節(jié)點(diǎn)啟動(dòng)后,會(huì)在Eureka Server中進(jìn)行注冊,這樣EurekaServer中的服務(wù)注冊表中將會(huì)存儲所有可用服務(wù)節(jié)點(diǎn)的信息,服務(wù)節(jié)點(diǎn)的信息可以在界面中直觀的看到。

Eureka Server本身也是一個(gè)服務(wù),默認(rèn)情況下會(huì)自動(dòng)注冊到Eureka注冊中心。

如果搭建單機(jī)版的Eureka Server注冊中心,則需要配置取消Eureka Server的自動(dòng)注冊邏輯。畢竟當(dāng)前服務(wù)注冊到當(dāng)前服務(wù)代表的注冊中心中是一個(gè)說不通的邏輯。

Eureka Server通過Register、Get、Renew等接口提供服務(wù)的注冊、發(fā)現(xiàn)和心跳檢測等服務(wù)。

1.2?Eureka Client

Eureka Client是一個(gè)java客戶端,用于簡化與Eureka Server的交互,客戶端同時(shí)也具備一個(gè)內(nèi)置的、使用輪詢(round-robin)負(fù)載算法的負(fù)載均衡器。在應(yīng)用啟動(dòng)后,將會(huì)向Eureka Server發(fā)送心跳,默認(rèn)周期為30秒,如果Eureka Server在多個(gè)心跳周期內(nèi)沒有接收到某個(gè)節(jié)點(diǎn)的心跳,Eureka Server將會(huì)從服務(wù)注冊表中把這個(gè)服務(wù)節(jié)點(diǎn)移除(默認(rèn)90秒)。

Eureka Client分為兩個(gè)角色,分別是:Application Service(Service Provider)和Application Client(Service Consumer)

1.2.1?Application Service

服務(wù)提供方,是注冊到Eureka Server中的服務(wù)。

1.2.2?Application Client

服務(wù)消費(fèi)方,通過Eureka Server發(fā)現(xiàn)服務(wù),并消費(fèi)。

?

注意:在這里,Application Service和Application Client不是絕對上的定義,因?yàn)镻rovider在提供服務(wù)的同時(shí),也可以消費(fèi)其他Provider提供的服務(wù);Consumer在消費(fèi)服務(wù)的同時(shí),也可以提供對外服務(wù)。

二、?Eureka和Zookeeper 對比

1?什么是CAP定理

CAP原則又稱CAP定理,指的是在一個(gè)分布式系統(tǒng)中,Consistency(數(shù)據(jù)一致性)、 Availability(服務(wù)可用性)、Partition tolerance(分區(qū)容錯(cuò)性),三者不可兼得。

CAP由Eric Brewer在2000年P(guān)ODC會(huì)議上提出該猜想在提出兩年后被證明成立,成為我們熟知的CAP定理

2 基于CAP定理比對Eureka和Zookeeper


三、?搭建Eureka注冊中心

Eureka Server既是一個(gè)注冊中心,同時(shí)也是一個(gè)服務(wù)。那么搭建Eureka Server的方式和以往搭建Dubbo注冊中心ZooKeeper的方式必然不同,那么首先搭建一個(gè)單機(jī)版的Eureka Server注冊中心。

1?POM文件

2??配置文件application.yml

Eureka Server本身也是一個(gè)服務(wù),同時(shí)又是一個(gè)注冊中心。在Spring Cloud中,啟動(dòng)的微服務(wù)會(huì)自動(dòng)的搜索注冊中心并注冊服務(wù),那么在單機(jī)版Eureka Server環(huán)境中,當(dāng)前服務(wù)注冊到當(dāng)前服務(wù)中,明顯是不合適的。所以搭建Eureka Server單機(jī)版時(shí),需要提供特殊的全局配置,避免回路注冊邏輯。

同理,Eureka Server服務(wù)在注冊中心中發(fā)現(xiàn)服務(wù)列表邏輯也是不必要的。畢竟注冊中心是一個(gè)中立的服務(wù)管理平臺,如果是單機(jī)版Eureka Server環(huán)境中,Eureka Server服務(wù)再去發(fā)現(xiàn)服務(wù)列表,明顯也是不必要的。也需要通過全局配置,避免回路發(fā)現(xiàn)邏輯。

3??啟動(dòng)類

4? 訪問Eureka Server WEB服務(wù)管理平臺

訪問服務(wù)管理平臺地址為: http://ip:port/


四、?Eureka 服務(wù)管理平臺介紹

1?Eureka Server服務(wù)管理平臺訪問預(yù)覽



?

2??System Status

系統(tǒng)狀態(tài)展示

3??DS Replicas

注冊中心集群列表

4??Instances currently registered with Eureka

已在注冊中心中注冊的服務(wù)列表

5??General Info

當(dāng)前注冊中心相關(guān)信息展示

6??Instance Info

當(dāng)前注冊中心實(shí)例信息展示

五、?搭建高可用集群

1?在Eureka應(yīng)用中定義多環(huán)境配置

1.1?application-eureka1.yml


1.2?application-eureka2.yml


2?打包工程

2.1?POM依賴

增加Spring Boot打包插件

2.2?打包


2.3?打包結(jié)果


3??上傳打包后的jar文件到Linux系統(tǒng)


4??設(shè)置Linux主機(jī)域名

修改/etc/hosts文件,設(shè)置主機(jī)域名。將主機(jī)域名和IP進(jìn)行綁定。

vi /etc/hosts

新增內(nèi)容如下:兩個(gè)Linux系統(tǒng)修改內(nèi)容相同。IP根據(jù)具體環(huán)境配置


5??啟動(dòng)Eureka

5.1?使用java命令啟動(dòng)

java -jar -Dspring.profiles.active=eureka1 cloudeureka-1.0-SNAPSHOT.jar

5.2?腳本啟動(dòng)

當(dāng)然,每次通過命令來啟動(dòng)Eureka Server過于麻煩,可以定義一個(gè)shell文件來簡化操作。Java程序員不必要掌握shell腳本的編寫。建議對shell腳本有一定的了解,至少能夠修改內(nèi)部的必要參數(shù)值。Shell腳本一般由運(yùn)維或部署人員開發(fā)。也可能有系統(tǒng)工程師開發(fā)。具體shell內(nèi)容如下:

設(shè)置好shell啟動(dòng)腳本后,需要提供可執(zhí)行權(quán)限:shell腳本文件名自己修改。

chmod 755 xxx.sh

腳本使用方式為:

啟動(dòng)Eureka Server命令:??./xxx.sh start

關(guān)閉Eureka Server命令:??./xxx.sh stop

?

六、?集群原理

Eureka Server注冊中心的集群和Dubbo的ZooKeeper注冊中心集群在結(jié)構(gòu)上有很大的不同。

Eureka Server注冊中心集群中每個(gè)節(jié)點(diǎn)都是平等的,集群中的所有節(jié)點(diǎn)同時(shí)對外提供服務(wù)的發(fā)現(xiàn)和注冊等功能。同時(shí)集群中每個(gè)Eureka Server節(jié)點(diǎn)又是一個(gè)微服務(wù),也就是說,每個(gè)節(jié)點(diǎn)都可以在集群中的其他節(jié)點(diǎn)上注冊當(dāng)前服務(wù)。又因?yàn)槊總€(gè)節(jié)點(diǎn)都是注冊中心,所以節(jié)點(diǎn)之間又可以相互注冊當(dāng)前節(jié)點(diǎn)中已注冊的服務(wù),并發(fā)現(xiàn)其他節(jié)點(diǎn)中已注冊的服務(wù)。

1?Eureka集群架構(gòu)原理圖


七、?Eureka優(yōu)雅停服

1?自我保護(hù)模式

一般情況下,微服務(wù)在 Eureka 上注冊后,會(huì)每 30 秒發(fā)送心跳包,Eureka 通過心跳來判斷服務(wù)時(shí)候健康,同時(shí)會(huì)定期刪除超過 90 秒沒有發(fā)送心跳服務(wù)。

有兩種情況會(huì)導(dǎo)致 Eureka Server 收不到微服務(wù)的心跳:一是微服務(wù)自身的原因;二是微服務(wù)與 Eureka 之間的網(wǎng)絡(luò)故障

通常微服務(wù)自身的故障關(guān)閉只會(huì)導(dǎo)致個(gè)別服務(wù)出現(xiàn)故障,一般不會(huì)出現(xiàn)大面積故障,而網(wǎng)絡(luò)故障通常會(huì)導(dǎo)致 Eureka Server 在短時(shí)間內(nèi)無法收到大批心跳。考慮到這個(gè)區(qū)別,Eureka 設(shè)置了一個(gè)閥值,當(dāng)判斷離線服務(wù)的數(shù)量超過閥值時(shí),Eureka Server 認(rèn)為很大程度上出現(xiàn)了網(wǎng)絡(luò)故障,將不再刪除心跳過期的服務(wù)。

那么這個(gè)閥值是多少呢?15分鐘之內(nèi)是否低于 85%;Eureka Server 在運(yùn)行期間,會(huì)統(tǒng)計(jì)心跳失敗的比例在15分鐘內(nèi)是否低于85%,這種算法叫做 Eureka Server 的自我保護(hù)模式。

1?為什么要自我保護(hù)

因?yàn)橥瑫r(shí)保留"好數(shù)據(jù)"與"壞數(shù)據(jù)"總比丟掉任何數(shù)據(jù)要更好,當(dāng)網(wǎng)絡(luò)故障恢復(fù)后,這個(gè) Eureka 節(jié)點(diǎn)會(huì)退出"自我保護(hù)模式"。Eureka 還有客戶端緩存功能(也就是微服務(wù)的緩存功能)。即便 Eureka 集群中所有節(jié)點(diǎn)都宕機(jī)失效,微服務(wù)的 Provider 和 Consumer都能依托服務(wù)緩存正常通信。微服務(wù)的負(fù)載均衡策略會(huì)自動(dòng)剔除離線的微服務(wù)節(jié)點(diǎn)。

2?關(guān)閉自我保護(hù)

修改Eureka Server中的核心配置文件application.yml


java架構(gòu)師高端課微服務(wù)_02_SpringCloud_Netflix_Eureka的評論 (共 條)

分享到微博請遵守國家法律
定安县| 芜湖市| 密云县| 海阳市| 松江区| 池州市| 汉川市| 余庆县| 辽中县| 汉川市| 扶风县| 靖西县| 益阳市| 乐清市| 遂昌县| 和平县| 察哈| 如东县| 辉南县| 遂溪县| 慈溪市| 临沭县| 封开县| 沁水县| 大田县| 芦溪县| 大厂| 泸西县| 库伦旗| 武冈市| 湘潭市| 邢台市| 喀喇沁旗| 个旧市| 河北省| 九龙城区| 双牌县| 舒城县| 新安县| 金湖县| 利川市|