亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Spring Cloud 體驗(yàn)

NotFound / 3417人閱讀

摘要:多層服務(wù)調(diào)用常見(jiàn)于微服務(wù)架構(gòu)中較底層的服務(wù)如果出現(xiàn)故障,會(huì)導(dǎo)致連鎖故障。

Spring Cloud 體驗(yàn) 簡(jiǎn)介

Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)的一些工具,包括配置管理、服務(wù)發(fā)現(xiàn)、斷路器、路由、微代理、

事件總線(xiàn)、全局鎖、決策競(jìng)選、分布式會(huì)話(huà)等等

基于Spring Boot,Spring Cloud將各公司成熟服務(wù)框架組合起來(lái),通過(guò)Spring Boot風(fēng)格封裝屏蔽掉了復(fù)雜的

配置和實(shí)現(xiàn)原理,最終給開(kāi)發(fā)者留出了一套簡(jiǎn)單易懂、易部署和易維護(hù)的分布式系統(tǒng)開(kāi)發(fā)工具包

創(chuàng)建服務(wù)注冊(cè)中心

開(kāi)發(fā)工具:Spring Tool Suite

右鍵 > New > Spring Starter Project > name:wind-server >

next:選擇cloud discovery->eureka server > Finish

配置服務(wù)application.yml

啟動(dòng)一個(gè)服務(wù)注冊(cè)中心,使用注解@EnableEurekaServer,這個(gè)注解需要在springboot工程的啟動(dòng)application類(lèi)上加

訪(fǎng)問(wèn):http://localhost:8761 觀察Spring Eureka服務(wù)注冊(cè)中心

創(chuàng)建服務(wù)提供者

當(dāng)client向server注冊(cè)時(shí),會(huì)提供一些元數(shù)據(jù),如主機(jī)和端口,URL,主頁(yè)等

Eureka server從每個(gè)client實(shí)例接收心跳信息,如果心跳超時(shí)則將該實(shí)例從注冊(cè)server中刪除

創(chuàng)建wind-client項(xiàng)目,過(guò)程同server類(lèi)似

配置application.yml 端口8762

在啟動(dòng)類(lèi)上加@EnableEurekaClient,表明是一個(gè)eureka client

在啟動(dòng)類(lèi)中添加測(cè)試方法:home

啟動(dòng)并訪(fǎng)問(wèn):http://localhost:8762/hi?name...

ribbon

在服務(wù)架構(gòu)中,業(yè)務(wù)都會(huì)被拆分成一個(gè)獨(dú)立的服務(wù),服務(wù)和服務(wù)的通訊是基于http restful的

cloud有兩種調(diào)用方式:ribbon+restTemplate和feign

ribbon是一個(gè)負(fù)載均衡客戶(hù)端,可以很好的控制http和tcp的一些行為

feign也用到了ribbon,當(dāng)你使用@FeignClient,ribbon自動(dòng)被應(yīng)用

啟動(dòng)wing-server和wind-client,更改wind-client端口為8763并啟動(dòng),在服務(wù)注冊(cè)中心就會(huì)有兩個(gè)服務(wù),模擬出一個(gè)小的集群

創(chuàng)建服務(wù)消費(fèi)者:wind-ribbon 過(guò)程同上

配置服務(wù)application.yml

在啟動(dòng)類(lèi)上加注解@EnableDiscoveryClient,向服務(wù)中心注冊(cè)一個(gè)新的服務(wù),這時(shí)wind-ribbon既是服務(wù)提供者也是服務(wù)消費(fèi)者

在啟動(dòng)類(lèi)中注冊(cè)了一個(gè)bean: restTemplate;通過(guò)@LoadBalanced注冊(cè)表明,這個(gè)restRemplate是負(fù)載均衡的

新建測(cè)試類(lèi)HelloControler和HelloService

啟動(dòng)并訪(fǎng)問(wèn):http://localhost:8764/hi?name...

連續(xù)訪(fǎng)問(wèn):頁(yè)面交替出現(xiàn)Hi Apolo,I am from port:8762和Hi Apolo,I am from port:8763

此時(shí)的項(xiàng)目架構(gòu):

一個(gè)服務(wù)注冊(cè)中心,wind-server,端口8761

wind-client工程跑了兩個(gè)副本,端口分別為8762、8763,分別向服務(wù)注冊(cè)中心注冊(cè)

wind-ribbon端口為8764,向服務(wù)注冊(cè)中心注冊(cè)

當(dāng)wind-ribbon通過(guò)restTemplate調(diào)用wind-client的hi接口時(shí),因?yàn)橛胷ibbon進(jìn)行負(fù)載均衡,會(huì)輪流調(diào)用wind-client:8762和8763端口的hi接口

feign

Feign是一個(gè)聲明式的web服務(wù)客戶(hù)端,它使得寫(xiě)web服務(wù)變得更簡(jiǎn)單

只需創(chuàng)建一個(gè)接口并注解,具有可插拔的注解特性,包括Feign注解和JAX-RS注解

同時(shí)支持可插拔的編碼器和解碼器

當(dāng)使用Feign的時(shí)候,Spring Cloud整合了Ribbon和Eureka去提供負(fù)載均衡

啟動(dòng)wind-server,端口為8761; 啟動(dòng)wind-client 兩次,端口分別為8762 、8773.

創(chuàng)建項(xiàng)目:wind-feign 過(guò)程同上并添加spring-cloud-starter-feign和spring-boot-starter-web到pom.xml

配置服務(wù)application.yml

在啟動(dòng)類(lèi)上加注解@EnableFeignClients開(kāi)啟feign,向服務(wù)注冊(cè)中心注冊(cè),wind-feign是服務(wù)者和消費(fèi)者

定義一個(gè)feign的接口類(lèi),使用@FeignClient(“服務(wù)名”)來(lái)指定調(diào)用哪個(gè)服務(wù)

啟動(dòng)并訪(fǎng)問(wèn):http://localhost:8765/hi?name... 瀏覽器交替顯示不同端口

更改feign配置

在聲明feignclient的時(shí)候,不僅要指定服務(wù)名,同時(shí)需要制定服務(wù)配置類(lèi) StoreClient

重寫(xiě)配置,需要加@Configuration注解,并重寫(xiě)下面的兩個(gè)bean 例子:FooConfiguration

斷路器

出現(xiàn)的背景

在微服務(wù)架構(gòu)中,將業(yè)務(wù)拆分成一個(gè)個(gè)的服務(wù),服務(wù)與服務(wù)之間可以相互調(diào)用(RPC)

為了保證高可用,高并發(fā)服務(wù),單個(gè)服務(wù)需要集群部署

由于網(wǎng)絡(luò)原因或服務(wù)自身的原因,不能保證100%的可用,若單個(gè)服務(wù)出現(xiàn)問(wèn)題,調(diào)用這個(gè)服務(wù)就會(huì)出現(xiàn)網(wǎng)絡(luò)延遲,

此時(shí)若有大量請(qǐng)求,會(huì)形成任務(wù)累計(jì),導(dǎo)致服務(wù)癱瘓,甚至導(dǎo)致服務(wù)"雪崩"

為解決服務(wù)"雪崩"的問(wèn)題,出現(xiàn)了斷路器模型

Netflix創(chuàng)建了一個(gè)Hystrix庫(kù)來(lái)實(shí)現(xiàn)斷路器模式。多層服務(wù)調(diào)用常見(jiàn)于微服務(wù)架構(gòu)中

較底層的服務(wù)如果出現(xiàn)故障,會(huì)導(dǎo)致連鎖故障。當(dāng)對(duì)特定的服務(wù)調(diào)用達(dá)到一個(gè)閥值(hystrix是5秒20次)斷路器將會(huì)打開(kāi)

斷路器打開(kāi)之后,可以避免連鎖故障,fallback方法可以直接返回一個(gè)固定值

在ribbon中使用

啟動(dòng)wind-server 工程;啟動(dòng)wind-client工程,它的端口為8762

改造wind-ribbon工程

pom.xml文件中添加 spring-cloud-starter-hystrix

程序入口(啟動(dòng)類(lèi))添加注解@EnableHystrix

服務(wù)類(lèi)HelloService,服務(wù)方法上加注解@HystrixCommand,并指定fallbackMethod,返回固定值

啟動(dòng)并訪(fǎng)問(wèn):http://localhost:8764/hi?name...

正常:Hi Apolo,I am from port:8762

關(guān)閉wind-client服務(wù):Hi,Apolo,sorry,error! 斷路器生效了

在feign中使用

feign自帶斷路器,默認(rèn)是關(guān)閉的

打開(kāi),添加配置:feign.hystrix.enabled=true

使用,服務(wù)接口SchedualServiceHi注解上添加fallback的指定類(lèi)SchedualServiceHiHystric

啟動(dòng)并訪(fǎng)問(wèn):http://localhost:8765/hi?name...,開(kāi)啟關(guān)閉wind-client服務(wù)觀察

為什么默認(rèn)關(guān)閉:

http://www.cnblogs.com/devzxd...

https://github.com/spring-clo...

監(jiān)控管理

Circuit Breaker: Hystrix Dashboard (斷路器:hystrix 儀表盤(pán))

監(jiān)控各個(gè)hystrixcommand的各種值

通過(guò)dashboards的實(shí)時(shí)監(jiān)控來(lái)動(dòng)態(tài)修改配置

改造wind-ribbon項(xiàng)目

pom文件添加spring-cloud-starter-hystrix-dashboard

啟動(dòng)類(lèi)添加注解@EnableHystrixDashboard開(kāi)啟斷路器儀表盤(pán)

啟動(dòng)訪(fǎng)問(wèn):http://localhost:8764/hystrix 看到小熊界面

輸入http://localhost:8764/hystrix... 點(diǎn)擊monitor stream進(jìn)入監(jiān)控界面

訪(fǎng)問(wèn)http://localhost:8764/hi?name...,觀察監(jiān)控頁(yè)面

路由網(wǎng)關(guān)(zuul) 介紹

微服務(wù)架構(gòu)的關(guān)鍵組件:服務(wù)注冊(cè)與發(fā)現(xiàn)、服務(wù)消費(fèi)、負(fù)載均衡、斷路器、智能路由、配置管理,由這幾個(gè)組件可以組成一個(gè)簡(jiǎn)單的微服務(wù)架構(gòu)

客戶(hù)端請(qǐng)求 --> 經(jīng)過(guò)負(fù)載均衡(zuul、Ngnix) --> 到達(dá)服務(wù)網(wǎng)關(guān)(zuul集群) --> 到具體服務(wù)

服務(wù)統(tǒng)一注冊(cè)到高可用服務(wù)注冊(cè)中心集群

服務(wù)的所有配置文件由配置服務(wù)管理,配置文件存儲(chǔ)在git倉(cāng)庫(kù),方便開(kāi)發(fā)人員隨時(shí)更改

Zuul簡(jiǎn)介

Zuul的主要功能是路由和過(guò)濾器

路由功能是微服務(wù)的一部分,如/api/user映射到user服務(wù),/api/shop映射到shop服務(wù)

Zuul也實(shí)現(xiàn)了負(fù)載均衡

Zuul使用

創(chuàng)建wind-zuul項(xiàng)目,pom文件添加spring-cloud-starter-zuul

啟動(dòng)類(lèi)上添加注解@EnableZuulProxy,啟動(dòng)zuul

添加配置文件application.yml

首先向eureka注冊(cè)自己,端口8769,服務(wù)名service-zuul

以/api-a/開(kāi)頭的路由指向service-ribbon

以/api-b/開(kāi)頭的路由指向service-feign

一次啟動(dòng)5個(gè)工程,分別訪(fǎng)問(wèn)
http://localhost:8769/api-a/h...和
http://localhost:8769/api-b/h...
結(jié)果一致,表明路由起作用了

Zuul服務(wù)過(guò)濾

zuul不僅是路由,還能過(guò)濾,做安全驗(yàn)證

增加過(guò)濾MyFilter.java 繼承ZuulFilter 加注解@Component

訪(fǎng)問(wèn):http://localhost:8769/api-a/h... 結(jié)果:token is empty

訪(fǎng)問(wèn):http://localhost:8769/api-a/h... 結(jié)果:Hi Apolo,I am from port:8763

源碼下載:

百度云盤(pán)地址:鏈接:http://pan.baidu.com/s/1dEI9oqP 密碼:va9l

參考:http://blog.csdn.net/forezp/a...

春雨中抽出來(lái)的柳條,嬌艷欲滴
此時(shí)的烈日下,顯得憔悴而慵懶
兩岸的游人稀少,都躲在樹(shù)下
烈日、大樹(shù)下,一陣風(fēng)來(lái),童年的記憶浮現(xiàn)
                2017-07-14

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/67376.html

相關(guān)文章

  • 部署微服務(wù):Spring Cloud vs. Kubernetes

    摘要:而微服務(wù)架構(gòu)能否成功實(shí)踐,利用各種工具解決潛在問(wèn)題是關(guān)鍵。因此,微服務(wù)本身可以通過(guò)庫(kù)和運(yùn)行時(shí)代理解決客戶(hù)端服務(wù)發(fā)現(xiàn)負(fù)載均衡配置更新統(tǒng)計(jì)跟蹤等。與相比,解決了更廣的微服務(wù)架構(gòu)問(wèn)題。和處理了不同范圍的微服務(wù)架構(gòu)技術(shù)點(diǎn),而且是用了不同的方法。 Spring Cloud vs. Kubernetes,誰(shuí)才是部署微服務(wù)的最佳拍檔? Spring Cloud和Kubernetes都聲稱(chēng)自己是開(kāi)發(fā)和...

    YanceyOfficial 評(píng)論0 收藏0
  • 分布式微服務(wù)架構(gòu)選項(xiàng)

    摘要:分布式架構(gòu)五大核心套件服務(wù)發(fā)現(xiàn)云端服務(wù)發(fā)現(xiàn),一個(gè)基于的服務(wù),用于定位服務(wù),以實(shí)現(xiàn)云端中間層服務(wù)發(fā)現(xiàn)和故障轉(zhuǎn)移。 1 后端技術(shù)框架我們選擇Spring Cloud作為微服務(wù)的分布式架構(gòu):Spring Cloud vs Dubbo? 背景 Dubbo,是阿里巴巴服務(wù)化治理的核心框架,并被廣泛應(yīng)用于阿里巴巴集團(tuán)的各成員站點(diǎn)。Spring Cloud,是Spring Source的產(chǎn)物...

    Rocture 評(píng)論0 收藏0
  • 分布式微服務(wù)架構(gòu)選項(xiàng)

    摘要:分布式架構(gòu)五大核心套件服務(wù)發(fā)現(xiàn)云端服務(wù)發(fā)現(xiàn),一個(gè)基于的服務(wù),用于定位服務(wù),以實(shí)現(xiàn)云端中間層服務(wù)發(fā)現(xiàn)和故障轉(zhuǎn)移。 1 后端技術(shù)框架我們選擇Spring Cloud作為微服務(wù)的分布式架構(gòu):Spring Cloud vs Dubbo? 背景 Dubbo,是阿里巴巴服務(wù)化治理的核心框架,并被廣泛應(yīng)用于阿里巴巴集團(tuán)的各成員站點(diǎn)。Spring Cloud,是Spring Source的產(chǎn)物...

    Labradors 評(píng)論0 收藏0
  • EDAS再升級(jí)!全面支持Spring Cloud應(yīng)用

    摘要:摘要近日,阿里中間件的企業(yè)級(jí)分布式應(yīng)用服務(wù)宣布再次升級(jí),全面支持應(yīng)用。在阿里巴巴的使用歷史可以追溯到年,并且成功通過(guò)了每年雙海量應(yīng)用的嚴(yán)峻考驗(yàn)。經(jīng)過(guò)多年的歷練,目前已經(jīng)成為阿里巴巴主要的分布式應(yīng)用服務(wù)工具,日均調(diào)用超千億次。 摘要: 近日,阿里中間件(Aliware)的企業(yè)級(jí)分布式應(yīng)用服務(wù)EDAS宣布再次升級(jí),全面支持Spring Cloud應(yīng)用。 點(diǎn)此查看原文:http://clic...

    _DangJin 評(píng)論0 收藏0
  • Spring Cloud Alibaba基礎(chǔ)教程:支持的幾種服務(wù)消費(fèi)方式

    摘要:那么為什么可以帶給我們這樣的完美編碼體驗(yàn)?zāi)貙?shí)際上,這完全歸功于的封裝,由于在服務(wù)注冊(cè)與發(fā)現(xiàn)客戶(hù)端負(fù)載均衡等方面都做了很好的抽象,而上層應(yīng)用方面依賴(lài)的都是這些抽象接口,而非針對(duì)某個(gè)具體中間件的實(shí)現(xiàn)。 通過(guò)《Spring Cloud Alibaba基礎(chǔ)教程:使用Nacos實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)》一文的學(xué)習(xí),我們已經(jīng)學(xué)會(huì)如何使用Nacos來(lái)實(shí)現(xiàn)服務(wù)的注冊(cè)與發(fā)現(xiàn),同時(shí)也介紹如何通過(guò)LoadBala...

    curlyCheng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<