springCloud-分析+總結(jié)

springCloud-分析+總結(jié)

一.Eureka

eureka是一個(gè)分布式微服務(wù)的架構(gòu)一個(gè)框架,eureka是netflix的一個(gè)開源框架,主要用于服務(wù)注冊與發(fā)現(xiàn).

當(dāng)項(xiàng)目啟動(dòng)時(shí),生產(chǎn)者服務(wù)會將自己的服務(wù)信息注冊到注冊中心,然后消費(fèi)者又會從注冊中心再拉取最新的服務(wù)列表,

什么是注冊中心?

1.在啟動(dòng)每一個(gè)服務(wù)的時(shí)候,會把自己的信息注冊到注冊中心中,并且會拉取一份最新的服務(wù)列表

2.每隔30秒會給注冊中心發(fā)送心跳包,確保它還活著,并且會拉取一份最新的服務(wù)列表

3.如果連續(xù)3次,注冊中心都沒有接收到心跳包,那么它會把這個(gè)節(jié)點(diǎn)從注冊中心的服務(wù)列表中去掉

Eureka Server 在運(yùn)行期間會去統(tǒng)計(jì)心跳失敗比例在 15 分鐘之內(nèi)是否低于 85%难衰,如果低于 85%浸剩,Eureka Server 會將這些實(shí)例保護(hù)起來竿报,讓這些實(shí)例不會過期,但是在保護(hù)期內(nèi)如果服務(wù)剛好這個(gè)服務(wù)提供者非正常下線了,此時(shí)服務(wù)消費(fèi)者就會拿到一個(gè)無效的服務(wù)實(shí)例辙纬,此時(shí)會調(diào)用失敗生兆,對于這個(gè)問題需要服務(wù)消費(fèi)者端要有一些容錯(cuò)機(jī)制,如重試拴还,斷路器等.

在真實(shí)環(huán)境當(dāng)中,基本不會出現(xiàn)大批量的服務(wù)器宕機(jī),

比如:網(wǎng)絡(luò)波動(dòng),注冊中心連續(xù)3次都沒有接受到心跳包,如果沒喲自我保護(hù)機(jī)制,那么這些節(jié)點(diǎn)就直接被踢出了

但是這些節(jié)點(diǎn)僅僅是因?yàn)榫W(wǎng)絡(luò)波動(dòng)導(dǎo)致,并不是真的是服務(wù)器的問題,所以不應(yīng)該去除至少在15分鐘之內(nèi)這些節(jié)點(diǎn)都是安全的,如果這時(shí)有消費(fèi)者訪問這些有問題的節(jié)點(diǎn),可以通過后臺設(shè)置重試次數(shù)或者降級處理,一旦網(wǎng)絡(luò)恢復(fù)了就可以恢復(fù)正常運(yùn)行了

二.Ribbon

Spring Cloud Ribbon是一個(gè)基于HTTP和TCP的客戶端負(fù)載均衡工具跨晴,它基于Netflix Ribbon實(shí)現(xiàn)。通過Spring Cloud的封裝片林,可以讓我們輕松地將面向服務(wù)的REST模版請求自動(dòng)轉(zhuǎn)換成客戶端負(fù)載均衡的服務(wù)調(diào)用端盆。Spring Cloud Ribbon雖然只是一個(gè)工具類框架,它不像服務(wù)注冊中心费封、配置中心焕妙、API網(wǎng)關(guān)那樣需要獨(dú)立部署,但是它幾乎存在于每一個(gè)Spring Cloud構(gòu)建的微服務(wù)和基礎(chǔ)設(shè)施中弓摘。

自己的理解:

首先ribbon是netflix的一個(gè)開源框架,主要是用來做遠(yuǎn)程調(diào)用的,使用的是restTemplate的方式進(jìn)行遠(yuǎn)程調(diào)用(URLconnection),使用時(shí)需要引入依賴,(如果已經(jīng)引入eureka的依賴,這個(gè)則不用引入了,因?yàn)閑ureka的依賴自帶ribbon的依賴)

其次,在消費(fèi)者的服務(wù)的啟動(dòng)類中將restTemplate這個(gè)對象交給spring管理,同時(shí)貼上@loadBalanced這個(gè)注解,表示使用ribbon的負(fù)載均衡

最后在消費(fèi)者的controller中使用Resttemplate的方式將生產(chǎn)者的服務(wù)名稱作為url的一部分傳進(jìn)參數(shù)中,ribbon底層會從本地列表服務(wù)中找到或者匹配到url中所寫生產(chǎn)者的服務(wù)名稱.然后替換成對應(yīng)的ip和端口,最后根據(jù)拼接好的url地址發(fā)送get異步請求,獲取數(shù)據(jù)

三:Feign

由于ribbon使用起來比較麻煩,需要建restTemplate,使用拼接url的方式進(jìn)行遠(yuǎn)程調(diào)用,不方便,現(xiàn)在出現(xiàn)了feign,feign的出現(xiàn)完美的解決了這個(gè)問題,(feign只是對了ribbon進(jìn)行了封裝,然后加入了自己的一些東西,feign的底層還是ribbon)feign采用的方式通過注入一個(gè)接口的方式來實(shí)現(xiàn)的,具體如下:

1.引入feign的依賴,spring集成好的依賴openFeign這個(gè)依賴

2.需要在生產(chǎn)者的api中新建一個(gè)接口feign的接口,在這個(gè)接口上貼上@FeignClient注解,表示這個(gè)一個(gè)feign的客戶端,寫上需要遠(yuǎn)程調(diào)用的服務(wù)的名稱

3.在這個(gè)接口的方法上貼上@RequestMapping("/get")這個(gè)注解

4.在方法的參數(shù)中貼上@RequestParam("id")這個(gè)注解

5.在生成者的服務(wù)中新建一個(gè)類實(shí)現(xiàn)剛才新建的feign的接口,這個(gè)類需要貼上@restController這個(gè)注解,里面所寫的方法和內(nèi)容和這個(gè)服務(wù)中的controller類中寫的是一樣的,因此controller可以不需要寫了.

6.在消費(fèi)者服務(wù)中的啟動(dòng)類中需要貼上@EnableFeignClients這個(gè)注解,貼上這個(gè)注解表示告訴spring框架要掃描所有貼上@FeignClient注解的類或者feign的客戶端,注意:掃描的是當(dāng)前包及其子包下面的類,因此要想@feignClient這個(gè)注解被掃描到,需要@FeignClient和@EnableFeignClient這個(gè)注解所在的包名是相同的,這樣當(dāng)消費(fèi)者服務(wù)啟動(dòng)時(shí)才可以掃描到生產(chǎn)者服務(wù)中的feign客戶端

7.在消費(fèi)者服務(wù)中的業(yè)務(wù)層注入feign接口依賴,然后通過feign接口調(diào)用方法時(shí),feign底層是通過jdk動(dòng)態(tài)代理的方式(使用反射)創(chuàng)建一個(gè)代理對象,這個(gè)對象根據(jù)反射獲取接口上注解以及方法上的注解及方法參數(shù)中的注解,根據(jù)這些注解就可以獲取對應(yīng)的值,比如:服務(wù)名稱,路徑,參數(shù),然后將獲取到這些值拼接成一個(gè)路徑,然后根據(jù)參數(shù)名稱去本地服務(wù)列表中拿到對應(yīng)的ip和端口,然后替換到url中,然后這個(gè)代理對象根據(jù)這個(gè)url使用HttpUrlConnection發(fā)送http請求.

8.請求最終會到生產(chǎn)者服務(wù)中實(shí)現(xiàn)了feign接口的實(shí)現(xiàn)類中(和以前寫的controller是一樣的,區(qū)別就是添加了這個(gè)類實(shí)現(xiàn)了自定義的feign接口),然后調(diào)用業(yè)務(wù)方法,獲取數(shù)據(jù),返回給調(diào)用者或者消費(fèi)者

9.消費(fèi)者服務(wù)中的feign接口的代理對象獲取生產(chǎn)者服務(wù)返回的數(shù)據(jù)封裝到product對象中.

四.Ribbon和Feign的超時(shí)時(shí)間和超時(shí)重試次數(shù)的設(shè)置

使用ribbon做遠(yuǎn)程調(diào)用時(shí),默認(rèn)超時(shí)時(shí)間是60s

源碼中默認(rèn)options中配置的是6000毫秒焚鹊,但是Feign默認(rèn)加入了Hystrix,此時(shí)默認(rèn)是1秒超時(shí).

我們可以通過設(shè)置修改feign的超時(shí)時(shí)間:

feign:

? client:

?? config:

? ?? default:

? ? ?? connectTimeout: 5000 #等待連接時(shí)間設(shè)置為5秒 表示連接的時(shí)間如果超過了5s則報(bào)錯(cuò)或降級

? ? ?? readTimeout: 5000 #相當(dāng)于通話時(shí)間設(shè)置為5s,連接上了讀的時(shí)候超過了5秒則報(bào)錯(cuò)或降級

feign的默認(rèn)重試次數(shù)為1次:表示第一次連接不成功的話,會在連接一次

可以進(jìn)行修改設(shè)置:無論是超時(shí)時(shí)間設(shè)置還是超時(shí)重試次數(shù)設(shè)置都是在消費(fèi)者服務(wù)的配置文件中進(jìn)行設(shè)置的

product-server:? #表示對哪一個(gè)服務(wù)進(jìn)行超時(shí)時(shí)間重試次數(shù)的設(shè)置

? ? ribbon:? #ribbon的負(fù)載均衡策略的設(shè)置RandomRule表示隨機(jī)策略,RoundRobinRule表示輪詢策略

? ? NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #表示隨機(jī)

? ? MaxAutoRetries: 0? #表式相同的服務(wù)最大超時(shí)重試次數(shù),設(shè)置為0,表示不重試

? ? MaxAutoRetriesNextServer: 0 #如果生產(chǎn)者服務(wù)有多個(gè),表示不同的服務(wù)的最大超時(shí)重試次數(shù)

通過以上也可以看出,feign底層使用的就是ribbon.因此ribbon的相關(guān)配置在feign中也是生效的

遠(yuǎn)程調(diào)用時(shí),超時(shí)時(shí)間重試一定是要保證業(yè)務(wù)是等冪性操作,:比如如果是添加操作,有可能會造成重復(fù)執(zhí)行

所謂等冪性操作就是無論重試多少次不會造成數(shù)據(jù)庫的改變

五.Hystrix服務(wù)熔斷和降級

所謂熔斷就是當(dāng)某個(gè)服務(wù)出現(xiàn)故障時(shí),可能會造成大批量訪問,導(dǎo)致資源被耗盡,會造成一些好的服務(wù)也無法放訪問,為了避免這種情況的出現(xiàn),要對這個(gè)服務(wù)進(jìn)行熔斷處理,即熔斷表示為了防止整個(gè)系統(tǒng)故障,保護(hù)自己以及下游的一些服務(wù),而實(shí)施一種策略,也就是這個(gè)服務(wù)出現(xiàn)故障,只熔斷這服務(wù),其他正常的服務(wù)不受影響,可以正常運(yùn)行

所謂降級就是拋棄非核心業(yè)務(wù),保障核心業(yè)務(wù)不受影響,例如:雙11那一天,訂單業(yè)務(wù)非常多,為了保證核心業(yè)務(wù)訂單能夠正常運(yùn)行,將會停掉一些非核心業(yè)務(wù)的服務(wù)(比如:修改密碼,修改收貨地址等等),將這些停掉的服務(wù)器專門用來執(zhí)行訂單業(yè)務(wù),這樣就是所謂的降級,整個(gè)功能會降一級,但是核心業(yè)務(wù)不會受影響...

二者區(qū)別:觸發(fā)原因不太一樣:服務(wù)熔斷一般是某個(gè)服務(wù)(下游服務(wù))故障引起,而服務(wù)降級一般是從整體負(fù)荷考慮韧献;

二者相同點(diǎn):

1)目的很一致: 都是從可用性可靠性著想末患,為防止系統(tǒng)的整體緩慢甚至崩潰研叫,采用的技術(shù)手段;

2)最終表現(xiàn)類似: 對于兩者來說璧针,最終讓用戶體驗(yàn)到的是某些功能暫時(shí)不可達(dá)或不可用嚷炉;

什么是服務(wù)雪崩效應(yīng)

由于某一個(gè)服務(wù)的不可用,導(dǎo)致資源被耗盡(tomcat的線程被耗盡),而進(jìn)而導(dǎo)致其他所有服務(wù)都不可以調(diào)用

如何解決:引入超時(shí)機(jī)制,引入限流機(jī)制,引入熔斷機(jī)制(當(dāng)訪問服務(wù)失敗多次以后就可以打開熔斷機(jī)制.不讓在訪問的),引入降級機(jī)制,(當(dāng)用戶訪問錯(cuò)誤的時(shí)候或者熔斷的時(shí)候,返回一個(gè)頁面或者默認(rèn)數(shù)據(jù)給用戶)

超時(shí)機(jī)制盡量不超過2秒,否則高并發(fā)下會導(dǎo)致資源被耗盡

hystrix的作用

提供了熔斷、隔離探橱、Fallback申屹、cache、監(jiān)控等功能

如何操作

ribbon集成hystrix

1.引入hystrix的依賴,netflix的hystrix的一個(gè)框架.

2.在消費(fèi)者服務(wù)的啟動(dòng)類中貼上@EnableHystrix注解或者@EnableCircuitBreaker 注解(這兩個(gè)注解是一樣的,在@EnableHystrix注解上貼有@EnableCircuitBreaker 這個(gè)注解),表示項(xiàng)目啟動(dòng)時(shí)開啟斷路器功能或者開啟服務(wù)熔斷和降級功能,

3.在消費(fèi)者服務(wù)中的controller中需要執(zhí)行熔斷降級的方法上面貼上@HystrixCommand注解,并在這個(gè)注解中配上屬性fallbackMethod="自定義的降級的方法名字",然后自定義的降級方法需要和這個(gè)原方法有一樣的參數(shù)和返回值

上面那樣就配置hystrix的熔斷降級處理,默認(rèn)超時(shí)時(shí)間是1s,只要1s內(nèi)沒有返回?cái)?shù)據(jù)則執(zhí)行降級處理,即會執(zhí)行自定義的降級方法,返回一個(gè)自定義的數(shù)據(jù),這是最外層的降級處理

feign集成hystrix

1.在生產(chǎn)者api中以前我們自定義了一個(gè)feign的接口上面貼了一個(gè)注解@feignClient,現(xiàn)在要在使用feign中的hystrix降級功能,需要在這個(gè)注解中添加一個(gè)屬性fallback="我們自定義的一個(gè)feignHystrix降級類.Class"

2.既然要使用feign的降級,那就需要自定義一個(gè)降級方法,因此在api中自定義個(gè)降級類,也就是上面說的feignHystix降級類,這個(gè)類實(shí)現(xiàn)feign的接口,然后貼上@componet注解交給spring管理

3.在這個(gè)類中我們實(shí)現(xiàn)接口的這個(gè)方法,這個(gè)方法就是我們要寫的降級的方法,里面可以寫當(dāng)出現(xiàn)降級以后返回的數(shù)據(jù)

4.要使用feign中的hystix的降級處理,必須要開啟hystix,默認(rèn)是關(guān)閉的

#開啟feign中的hystrix,默認(rèn)是關(guān)閉的,需要手動(dòng)打開

#一般feign降級和hystrix降級只需打開一個(gè)即可,兩個(gè)都可以實(shí)現(xiàn)降級處理

feign:

? hystrix:

?? enabled: true? #開啟feign的hystirx熔斷降級

? client:

?? config:

? ?? default:

? ? ?? connectTimeout: 5000 #等待連接時(shí)間設(shè)置為5秒 表示連接的時(shí)間如果超過了5s則報(bào)錯(cuò)或降級

? ? ?? readTimeout: 5000 #相當(dāng)于通話時(shí)間設(shè)置為5s,連接上了讀的時(shí)候超過了5秒則報(bào)錯(cuò)或降級

#設(shè)置hystrix的超時(shí)時(shí)間

hystrix:

? command:

?? default:

? ?? execution:

? ? ?? isolation:

? ? ? ?? thread:

? ? ? ? ?? timeoutInMilliseconds: 6000

hystix的默認(rèn)超時(shí)時(shí)間是1s,可以通過配置進(jìn)行修改這個(gè)時(shí)間,feign的降級默認(rèn)是關(guān)閉的,需要手動(dòng)打開,當(dāng)feign的超時(shí)時(shí)間到了之后要執(zhí)行降級處理

hystrixCommand的超時(shí)時(shí)間需要比配置feign遠(yuǎn)程調(diào)用的時(shí)間要大才有意義

真實(shí)開發(fā)環(huán)境中,超時(shí)的時(shí)間的不能超過2s.如果需要大于2s需要使用異步或線程處理

六.如何理解feign中hystrix降級和最外層的Hystrix的降級處理

分為以下幾種情況:

情況一:假如消費(fèi)者服務(wù)hystix降級開啟,默認(rèn)1s超時(shí),feign沒有開啟hystix降級,生產(chǎn)者業(yè)務(wù)執(zhí)行睡眠3s

則:由于睡眠3s導(dǎo)致hystix降級,執(zhí)行hystix降級方法,用戶接收hystix降級方法的返回?cái)?shù)據(jù)

情況二:假如消費(fèi)者服務(wù)hystix降級開啟,默認(rèn)1s超時(shí),feign開啟hystix降級,.默認(rèn)超時(shí)時(shí)間為1s,生產(chǎn)者業(yè)務(wù)執(zhí)行睡眠3s

則:由于睡眠3s導(dǎo)致hystix降級,feign也會降級,執(zhí)行hystix降級方法,feign的降級方法也會執(zhí)行,但是用戶接收hystix降級方法的返回?cái)?shù)據(jù)

情況三:假如消費(fèi)者服務(wù)hystix降級開啟,默認(rèn)1s超時(shí),feign開啟hystix降級,.修改超時(shí)時(shí)間為2s,生產(chǎn)者業(yè)務(wù)執(zhí)行睡眠3s

則:由于睡眠3s導(dǎo)致hystix降級,feign不會降級(因?yàn)榈?s時(shí)沒有返回?cái)?shù)據(jù)就會執(zhí)行hystix的降級方法),執(zhí)行hystix降級方法,用戶接收hystix降級方法的返回?cái)?shù)據(jù)

情況四:假如消費(fèi)者服務(wù)hystix降級開啟,默認(rèn)1s超時(shí),feign開啟hystix降級,.修改超時(shí)時(shí)間為4s,生產(chǎn)者業(yè)務(wù)執(zhí)行睡眠3s

則:由于睡眠3s導(dǎo)致hystix降級,feign不會降級,執(zhí)行hystix降級方法,用戶接收hystix降級方法的返回?cái)?shù)據(jù)

情況五:假如消費(fèi)者服務(wù)hystix降級開啟,修改超時(shí)時(shí)間為4s超時(shí),feign開啟hystix降級,.修改超時(shí)時(shí)間為4s,生產(chǎn)者業(yè)務(wù)執(zhí)行睡眠3s

則:由于睡眠3s后還未到超時(shí)時(shí)間,則不會執(zhí)行feign的降級處理,但是由于feign返回?cái)?shù)據(jù)到消費(fèi)者服務(wù)接收數(shù)據(jù)時(shí)間如果大于4s則會執(zhí)行hystix降級方法,返回hysrix數(shù)據(jù),如果不大于4s,則都不會進(jìn)行降級處理,返回feign返回的數(shù)據(jù)

情況六:假如消費(fèi)者服務(wù)hystix降級開啟,修改超時(shí)時(shí)間為5s超時(shí),feign開啟hystix降級,.修改超時(shí)時(shí)間為4s,生產(chǎn)者業(yè)務(wù)執(zhí)行睡眠3s

則:由于睡眠3s后還未到超時(shí)時(shí)間,則不會執(zhí)行feign的降級處理,但是由于feign返回?cái)?shù)據(jù)到消費(fèi)者服務(wù)接收數(shù)據(jù)時(shí)間不足5s,因此不會執(zhí)行降級方法,正常返回?cái)?shù)據(jù)

七.zuul微服務(wù)網(wǎng)關(guān)

引入依賴:Netflix開源的微服務(wù)網(wǎng)關(guān)隧膏,和Eureka,Ribbon,Hystrix等組件配合使用.

在啟動(dòng)類上貼上@EnableZuulProxy注解

配置zuul網(wǎng)關(guān)服務(wù)信息

server:? port: 9000spring:? application:? ? name: zuul-servereureka:? client:? ? serviceUrl:? ? ? defaultZone: http://localhost:8761/eureka/

自定義路由規(guī)則

#zuul網(wǎng)關(guān)的自定義路由配置zuul:? ignoredPatterns: /*-server/**? #這個(gè)配置表示忽略默認(rèn)配置? routes:? ? order-server-route:? ? ? path: /order/**? #這個(gè)配置表示使用order的路徑則會訪問order的服務(wù)? ? ? serviceId: order-server? ? product-server-route:? ? ? path: /product/**? #這個(gè)配置表示使用product的路徑則會訪問product的服務(wù)? ? ? serviceId: product-server? sensitive-headers:? ? #給一個(gè)空值表示不會過濾到cookie的信息

cookie請求頭問題

sensitiveHeaders:? ? #配置這個(gè)表示不讓cookie請求頭被攔截

八.鏈路追蹤Sleuth和Zipkin

1.在需要進(jìn)行日志追蹤的服務(wù)中引入依賴sleuth和zipkin的依賴,不過zipkin已經(jīng)包含了sleuth依賴,因此只需引入zipkin這一個(gè)依賴集合

2.在需要使用鏈路追蹤的服務(wù)的配置文件中添加zipkin的地址

spring:

zipkin:

?? base-url: http://localhost:9411

? sleuth:

?? sampler:

? ?? probability: 1

九.分布式配置中心

Spring Cloud Config用來為分布式系統(tǒng)中的基礎(chǔ)設(shè)施和微服務(wù)應(yīng)用提供集中化的外部配置支持哗讥,分為服務(wù)端和客戶端兩個(gè)部分。其中服務(wù)端又稱為分布式配置中心私植,是一個(gè)獨(dú)立的微服務(wù)應(yīng)用忌栅,用來連接配置倉庫并為客戶端提供獲取配置信息;而客戶端則是微服務(wù)架構(gòu)中的各個(gè)微服務(wù)應(yīng)用或基礎(chǔ)設(shè)施曲稼,它們通過指定配置中心來管理應(yīng)用資源和業(yè)務(wù)相關(guān)的配置內(nèi)容索绪。服務(wù)器存儲后端的默認(rèn)實(shí)現(xiàn)使用git,也可以使用SVN倉庫或者本地文件系統(tǒng)贫悄。

關(guān)于git配置信息如下:

spring.cloud.config.server.git.uri: 配置Git倉庫位置

spring.cloud.config.server.git.search-paths: 配置倉庫路徑下的相對搜索位置瑞驱,默認(rèn)是只在根目錄下尋找,配置相對位置后窄坦,除了根目錄還回去配置的位置下尋找唤反。

spring.cloud.config.server.git.username: 訪問Git倉庫的用戶名

spring.cloud.config.server.git.password: 訪問Git倉庫的密碼

配置中心的作用和好處

安全性:配置跟隨源代碼保存在代碼庫中,容易造成配置泄漏時(shí)效性:修改配置鸭津,需要重啟服務(wù)才能生效局限性:無法支持動(dòng)態(tài)調(diào)整:例如日志開關(guān)彤侍、功能開關(guān)

如何操作:

1.創(chuàng)建config-server服務(wù),并引入依賴spring-cloud-config-server

2.配置文件

server:

? port: 9100

spring:

? application:

?? name: config-server

? cloud:

?? config:

? ?? server:

? ? ?? git:

? ? ? ?? uri: https://gitee.com/d.git

? ? ? ?? username: 自己的gitte賬號

? ? ? ?? password: 自己gitee密碼

eureka:

? client:

?? serviceUrl:

? ?? defaultZone: http://localhost:8761/eureka/? #eureka的地址

3.啟動(dòng)類上貼注解@EnableConfigServer

4.創(chuàng)建碼云倉庫,并把倉庫的地址添加到y(tǒng)ml文件中逆趋,添加Eureka注冊中心的配置到application.yml中盏阶。注意如果使用的git的倉庫地址是http協(xié)議的 那么必須在后面繼續(xù)追加賬號和密碼,如果使用是ssh的就不用闻书。

5.在其他需要將配置文件上傳到碼云交給配置中心管理的服務(wù)中添加配置中心客戶端依賴spring-cloud-config-client

6.將原來的配置文件application.yml改為bootstrap.yml

boostrap.yml如下:

spring:

? application:

?? name: order-server

? cloud:

?? config:

? ?? discovery:

? ? ?? service-id: config-server

? ? ?? enabled: true

? ? ?? label: master

eureka:

? client:

?? serviceUrl:

? ?? defaultZone: http://localhost:8761/eureka/

7.將原來的application.yml的中心移到碼云上進(jìn)行管理

由配置中心進(jìn)行統(tǒng)一管理,流程如下:

1>項(xiàng)目啟動(dòng)時(shí),商品服務(wù)會從注冊中心拉取最新的配置中心的config-server的ip地址

2>根據(jù)config-server的ip地址發(fā)起請求,根據(jù)product-server的名字從配置中心獲取對應(yīng)的配置文件

3>項(xiàng)目讀取獲取到的配置文件product-server.yml.啟動(dòng)服務(wù)

bootstrap.yml是先讀取,優(yōu)先級是大于application.yml的,因此先從bootstrap.yml中進(jìn)行讀取

配置中心由于配置了遠(yuǎn)程倉庫的地址,用戶名和密碼,則會自動(dòng)從碼云上將配置文件緩存到本地服務(wù)列表中,項(xiàng)目啟動(dòng)時(shí)進(jìn)行讀取

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末名斟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子魄眉,更是在濱河造成了極大的恐慌砰盐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坑律,死亡現(xiàn)場離奇詭異岩梳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門蒋腮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淘捡,“玉大人藕各,你說我怎么就攤上這事池摧。” “怎么了激况?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵作彤,是天一觀的道長。 經(jīng)常有香客問我乌逐,道長竭讳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任浙踢,我火速辦了婚禮绢慢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘洛波。我一直安慰自己胰舆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布蹬挤。 她就那樣靜靜地躺著缚窿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪焰扳。 梳的紋絲不亂的頭發(fā)上倦零,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機(jī)與錄音吨悍,去河邊找鬼扫茅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛育瓜,可吹牛的內(nèi)容都是我干的葫隙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼爆雹,長吁一口氣:“原來是場噩夢啊……” “哼停蕉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钙态,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤慧起,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后册倒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚓挤,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了灿意。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片估灿。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖缤剧,靈堂內(nèi)的尸體忽然破棺而出馅袁,到底是詐尸還是另有隱情,我是刑警寧澤荒辕,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布汗销,位于F島的核電站,受9級特大地震影響抵窒,放射性物質(zhì)發(fā)生泄漏弛针。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一李皇、第九天 我趴在偏房一處隱蔽的房頂上張望削茁。 院中可真熱鬧,春花似錦掉房、人聲如沸茧跋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厌衔。三九已至,卻和暖如春捍岳,著一層夾襖步出監(jiān)牢的瞬間富寿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工锣夹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留页徐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓银萍,卻偏偏與公主長得像变勇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子贴唇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348