新聞中心
基于阿里開源的Sentinel實(shí)現(xiàn)了服務(wù)的限流與容錯(cuò),并詳細(xì)介紹了Sentinel的核心技術(shù)與配置規(guī)則。簡單介紹了服務(wù)網(wǎng)關(guān),并對SpringCloud Gateway的核心架構(gòu)進(jìn)行了簡要說明,也在項(xiàng)目中整合了SpringCloud Gateway網(wǎng)關(guān)實(shí)現(xiàn)了通過網(wǎng)關(guān)訪問后端微服務(wù)。

十載的梁平網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整梁平建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“梁平網(wǎng)站設(shè)計(jì)”,“梁平網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
同時(shí),也基于SpringCloud Gateway整合Sentinel實(shí)現(xiàn)了網(wǎng)關(guān)的限流功能,詳細(xì)介紹了SpringCloud Gateway網(wǎng)關(guān)的核心技術(shù)。在鏈路追蹤章節(jié),我們開始簡單介紹了分布式鏈路追蹤技術(shù)與解決方案,隨后在項(xiàng)目中整合Sleuth實(shí)現(xiàn)了鏈路追蹤,并使用Sleuth整合ZipKin實(shí)現(xiàn)了分布式鏈路追蹤的可視化 。
在消息服務(wù)章節(jié),我們介紹了MQ的使用場景,引入MQ后的注意事項(xiàng)以及MQ的選型對比,在項(xiàng)目中整合了RocketMQ,并給大家介紹了RocketMQ的核心技術(shù)。
本章總覽
群魔亂舞(配置散落存儲)
當(dāng)我們的項(xiàng)目采用微服務(wù)架構(gòu)后,原本單一的項(xiàng)目會被拆分為一個(gè)個(gè)小的微服務(wù)。原來項(xiàng)目中的配置文件就需要在每個(gè)微服務(wù)下都要存儲一份,這些配置文件中的內(nèi)容大部分都是相同的,只有個(gè)別的配置項(xiàng)不同。就拿數(shù)據(jù)庫配置來說吧,如果每個(gè)微服務(wù)使用的技術(shù)棧都是相同的,則每個(gè)微服務(wù)中關(guān)于數(shù)據(jù)庫的配置幾乎都是相同的,有區(qū)別的地方可能就是:數(shù)據(jù)庫連接,用戶名和密碼。
當(dāng)項(xiàng)目采用微服務(wù)架構(gòu)后,原本在單體項(xiàng)目中的配置文件就會散落在各個(gè)微服務(wù)中,如果不對這些散落的配置文件進(jìn)行處理,就會造成各種各樣的問題??偨Y(jié)起來,這些問題主要體現(xiàn)在如下幾個(gè)方面。
(1)配置文件散落在各個(gè)微服務(wù)項(xiàng)目中,隨著整體項(xiàng)目的業(yè)務(wù)越來越復(fù)雜,后續(xù)會新增更多的微服務(wù)項(xiàng)目,微服務(wù)項(xiàng)目越來越多,則散落在微服務(wù)中的配置文件也會越來越多,后續(xù)會變得難以統(tǒng)一維護(hù)和管理。
(2)配置文件散落在各個(gè)微服務(wù)項(xiàng)目中,還有一個(gè)非常棘手的問題,那就是修改配置文件非常麻煩。需要我們手動(dòng)去修改每個(gè)微服務(wù)下的配置文件,稍有不慎,還會增加微服務(wù)項(xiàng)目出錯(cuò)的風(fēng)險(xiǎn)。
(3)一般情況下,企業(yè)的項(xiàng)目發(fā)布環(huán)境包含開發(fā)環(huán)境、測試環(huán)境、預(yù)發(fā)布環(huán)境、生產(chǎn)環(huán)境。每個(gè)環(huán)境都需要對應(yīng)不同的配置文件,如果不對這些配置文件進(jìn)行統(tǒng)一管理,則每次發(fā)布到不同的環(huán)境時(shí),都需要我們手動(dòng)去修改每個(gè)微服務(wù)的配置文件,維護(hù)起來也是非常繁瑣的。
(4)在微服務(wù)中,手動(dòng)修改了配置文件之后,修改后的具體的配置項(xiàng)無法在微服務(wù)項(xiàng)目中實(shí)時(shí)更新。每次修改配置文件后,都需要重新啟動(dòng)微服務(wù)項(xiàng)目。不管是從開發(fā)角度,還是從運(yùn)維角度,都是非常不友好的。
分久必合(配置中心)
基于上面的種種原因,我們絕不允許配置文件長期在各個(gè)微服務(wù)項(xiàng)目中分散存儲,那有沒有什么辦法將這些配置文件統(tǒng)一存放和管理呢?答案就是使用配置中心。
這里,冰河先用自己的大白話給配置中心下個(gè)定義吧。
配置中心就是在微服務(wù)項(xiàng)目中,統(tǒng)一管理和維護(hù)項(xiàng)目配置信息的地方,它支持配置信息的集中存儲,對外提供統(tǒng)一的接口獲取配置,支持各個(gè)微服務(wù)主動(dòng)調(diào)用配置中心的接口獲取配置,也支持當(dāng)配置信息發(fā)生變更時(shí),由配置中心實(shí)時(shí)并且主動(dòng)向各個(gè)微服務(wù)通知服務(wù)配置發(fā)生了變更,使其同步最新的配置信息。
哎,說好的大白話,讀起來還是有點(diǎn)“官腔”,算了,不管它了,大家能夠看懂就好。
在對配置中心的定義中,涵蓋了三項(xiàng)重要內(nèi)容。
(1)配置中心將各個(gè)微服務(wù)中的配置進(jìn)行統(tǒng)一集中管理和維護(hù),并且對外提供統(tǒng)一的接口獲取相關(guān)配置。
(2)配置中心支持微服務(wù)主動(dòng)調(diào)用配置中心的接口獲取配置信息。
(3)配置信息發(fā)生變更時(shí),配置中心能夠?qū)崟r(shí)并且主動(dòng)向各個(gè)微服務(wù)通知服務(wù)配置發(fā)生了變更,使其同步最新的配置信息。
這里,我們還是以商城微服務(wù)化后為例,當(dāng)引入配置中心后,數(shù)據(jù)庫配置信息,如下圖所示。
可以看到,在微服務(wù)中引入配置中心后,配置信息不再存儲到各個(gè)微服務(wù)項(xiàng)目中,也不用再手動(dòng)修改每個(gè)微服務(wù)項(xiàng)目中的配置信息。而是在配置中心統(tǒng)一進(jìn)行管理和維護(hù)。各個(gè)微服務(wù)會調(diào)用配置中心的接口獲取配置信息。當(dāng)配置中心的配置信息發(fā)生變更時(shí),配置中心會主動(dòng)并且實(shí)時(shí)通知各個(gè)微服務(wù),使其獲取配置中心的最新配置信息。
配置中心解決方案
針對項(xiàng)目采用微服務(wù)架構(gòu)后的配置文件的存儲與管理問題,業(yè)界也提出了不少解決方案,也開源出了很多不錯(cuò)的優(yōu)秀項(xiàng)目,這里就給大家簡單列舉幾個(gè)。
|
配置中心 |
說明 |
|
Consul |
谷歌基于Go語言開發(fā)出的一款支持服務(wù)動(dòng)態(tài)發(fā)現(xiàn)的配置管理中心服務(wù)。在Consul中,內(nèi)置了服務(wù)注冊與發(fā)現(xiàn)功能,實(shí)現(xiàn)了分布式一致性協(xié)議,支持Key-Value存儲,支持多數(shù)據(jù)中心。 |
|
Apollo |
協(xié)程開源的一款支持分布式的配置中心。支持修改后的配置動(dòng)態(tài)實(shí)時(shí)生效,對項(xiàng)目的配置進(jìn)行版本化管理,對配置的修改支持審計(jì),支持項(xiàng)目的灰度發(fā)布。 |
|
Disconf |
百度開源的一款支持分布式的配置中心,主要是利用Zookeeper實(shí)現(xiàn)配置信息變更后,實(shí)時(shí)通知各個(gè)微服務(wù),使變更后的配置信息生效。 |
|
SpringCloud Config |
SpringCloud技術(shù)棧中自帶的配置中心組件,支持使用Git倉庫存儲配置信息,不支持配置信息變更后實(shí)時(shí)生效。 |
|
Nacos |
SpringCloud Alibaba技術(shù)棧中的一個(gè)在微服務(wù)環(huán)境下,支持分布式服務(wù)注冊與發(fā)現(xiàn),支持服務(wù)元數(shù)據(jù)及流量管理,支持分布式配置中心的組件。使用Nacos可以輕松實(shí)現(xiàn)服務(wù)的注冊與發(fā)現(xiàn),以及分布式配置中心功能。 |
Nacos配置中心概念
|
核心概念 |
中文說明 |
概念說明 |
|
Namespace |
命名空間 |
主要用于不同環(huán)境下的配置隔離,不同的環(huán)境會被劃分到不同的命名空間中。 |
|
Group |
配置分組 |
主要用于將不同的微服務(wù)劃分到同一個(gè)分組中。通常情況下,會將組成整體項(xiàng)目的各個(gè)微服務(wù)的配置統(tǒng)一劃分到同一個(gè)分組中。 |
|
Data ID |
配置集 ID |
通常情況下,在系統(tǒng)中,一個(gè)配置文件就是一個(gè)配置集,在這個(gè)配置文件中,能夠包含系統(tǒng)各個(gè)方面的配置信息。配置集ID就是某個(gè)配置集的ID,也就是系統(tǒng)中某個(gè)配置文件的ID。 |
網(wǎng)站名稱:服務(wù)配置:服務(wù)配置介紹與Nacos核心
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/dpscceh.html


咨詢
建站咨詢
