成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Spring Cloud Alibaba基礎(chǔ)教程:Nacos的集群部署

elarity / 2241人閱讀

摘要:通過(guò)本文,我們將完成生產(chǎn)環(huán)境的搭建。第二步修改文件,增加支持?jǐn)?shù)據(jù)源配置,添加目前只支持?jǐn)?shù)據(jù)源的用戶(hù)名和密碼。另外,的集群需要個(gè)或個(gè)以上的節(jié)點(diǎn),并且確保這三個(gè)節(jié)點(diǎn)之間是可以互相訪問(wèn)的。也可以故意的關(guān)閉某個(gè)實(shí)例,來(lái)驗(yàn)證集群是否還能正常服務(wù)。

前情回顧:

《Spring Cloud Alibaba基礎(chǔ)教程:使用Nacos實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)》

《Spring Cloud Alibaba基礎(chǔ)教程:支持的幾種服務(wù)消費(fèi)方式》

《Spring Cloud Alibaba基礎(chǔ)教程:使用Nacos作為配置中心》

《Spring Cloud Alibaba基礎(chǔ)教程:Nacos配置的加載規(guī)則詳解》

《Spring Cloud Alibaba基礎(chǔ)教程:Nacos配置的多環(huán)境管理》

《Spring Cloud Alibaba基礎(chǔ)教程:Nacos配置的多文件加載與共享配置》

《Spring Cloud Alibaba基礎(chǔ)教程:Nacos的數(shù)據(jù)持久化》

繼續(xù)說(shuō)說(shuō)生產(chǎn)環(huán)境的Nacos搭建,通過(guò)上一篇《Nacos的數(shù)據(jù)持久化》的介紹,我們已經(jīng)知道Nacos對(duì)配置信息的存儲(chǔ)原理,在集群搭建的時(shí)候,必須要使用集中化存儲(chǔ),比如:MySQL存儲(chǔ)。下面順著上一篇的內(nèi)容,繼續(xù)下一去。通過(guò)本文,我們將完成Nacos生產(chǎn)環(huán)境的搭建。

集群搭建

根據(jù)官方文檔的介紹,Nacos的集群架構(gòu)大致如下圖所示(省略了集中化存儲(chǔ)信息的MySQL):

下面我們就來(lái)一步步的介紹,我們每一步的搭建細(xì)節(jié)。

MySQL數(shù)據(jù)源配置

對(duì)于數(shù)據(jù)源的修改,在上一篇《Nacos的數(shù)據(jù)持久》中已經(jīng)說(shuō)明緣由,如果還不了解的話,可以先讀一下這篇再回來(lái)看這里。

在進(jìn)行集群配置之前,先完成對(duì)MySQL數(shù)據(jù)源的初始化和配置。主要分以下兩步:

第一步:初始化MySQL數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)初始化文件:nacos-mysql.sql,該文件可以在Nacos程序包下的conf目錄下獲得。

第二步:修改conf/application.properties文件,增加支持MySQL數(shù)據(jù)源配置,添加(目前只支持mysql)數(shù)據(jù)源的url、用戶(hù)名和密碼。配置樣例如下:

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=
更多介紹與思考,可見(jiàn)查看上一篇《Nacos的數(shù)據(jù)持久化》。
集群配置

在Nacos的conf目錄下有一個(gè)cluster.conf.example,可以直接把example擴(kuò)展名去掉來(lái)使用,也可以多帶帶創(chuàng)建一個(gè)cluster.conf文件,然后打開(kāi)將后續(xù)要部署的Nacos實(shí)例地址配置在這里。

本文以在本地不同端點(diǎn)啟動(dòng)3個(gè)Nacos服務(wù)端為例,可以如下配置:

127.0.0.1:8841
127.0.0.1:8842
127.0.0.1:8843
注意:這里的例子僅用于本地學(xué)習(xí)測(cè)試使用,實(shí)際生產(chǎn)環(huán)境必須部署在不同的節(jié)點(diǎn)上,才能起到高可用的效果。另外,Nacos的集群需要3個(gè)或3個(gè)以上的節(jié)點(diǎn),并且確保這三個(gè)節(jié)點(diǎn)之間是可以互相訪問(wèn)的。
啟動(dòng)實(shí)例

在完成了上面的配置之后,我們就可以開(kāi)始在各個(gè)節(jié)點(diǎn)上啟動(dòng)Nacos實(shí)例,以組建Nacos集群來(lái)使用了。

由于本文中我們測(cè)試學(xué)習(xí)采用了本地啟動(dòng)多實(shí)例的情況,與真正生產(chǎn)部署會(huì)有一些差異,所以下面分兩種情況說(shuō)一下,如何啟動(dòng)各個(gè)Nacos實(shí)例。

本地測(cè)試

本文中,在集群配置的時(shí)候,我們?cè)O(shè)定了3個(gè)Nacos的實(shí)例都在本地,只是以不同的端口區(qū)分,所以我們?cè)趩?dòng)Nacos的時(shí)候,需要修改不同的端口號(hào)。

下面介紹一種方法來(lái)方便地啟動(dòng)Nacos的三個(gè)本地實(shí)例,我們可以將bin目錄下的startup.sh腳本復(fù)制三份,分別用來(lái)啟動(dòng)三個(gè)不同端口的Nacos實(shí)例,為了可以方便區(qū)分不同實(shí)例的啟動(dòng)腳本,我們可以把端口號(hào)加入到腳本的命名中,比如:

startup-8841.sh

startup-8842.sh

startup-8843.sh

然后,分別修改這三個(gè)腳本中的參數(shù),具體如下圖的紅色部分(端口號(hào)根據(jù)上面腳本命名分配):

這里我們通過(guò)-Dserver.port的方式,在啟動(dòng)命令中,為Nacos指定具體的端口號(hào),以實(shí)現(xiàn)在本機(jī)上啟動(dòng)三個(gè)不同的Nacos實(shí)例來(lái)組成集群。

修改完3個(gè)腳本配置之后,分別執(zhí)行下面的命令就可以在本地啟動(dòng)Nacos集群了:

sh startup-8841.sh
sh startup-8842.sh
sh startup-8843.sh

生產(chǎn)環(huán)境

在實(shí)際生產(chǎn)環(huán)境部署的時(shí)候,由于每個(gè)實(shí)例分布在不同的節(jié)點(diǎn)上,我們可以直接使用默認(rèn)的啟動(dòng)腳本(除非要調(diào)整一些JVM參數(shù)等才需要修改)。只需要在各個(gè)節(jié)點(diǎn)的Nacos的bin目錄下執(zhí)行sh startup.sh命令即可。

Proxy配置

在Nacos的集群?jiǎn)?dòng)完畢之后,根據(jù)架構(gòu)圖所示,我們還需要提供一個(gè)統(tǒng)一的入口給我們用來(lái)維護(hù)以及給Spring Cloud應(yīng)用訪問(wèn)。簡(jiǎn)單地說(shuō),就是我們需要為上面啟動(dòng)的的三個(gè)Nacos實(shí)例做一個(gè)可以為它們實(shí)現(xiàn)負(fù)載均衡的訪問(wèn)點(diǎn)。這個(gè)實(shí)現(xiàn)的方式非常多,這里就舉個(gè)用Nginx來(lái)實(shí)現(xiàn)的簡(jiǎn)單例子吧。

在Nginx配置文件的http段中,我們可以加入下面的配置內(nèi)容:

這樣,當(dāng)我們?cè)L問(wèn):http://localhost:8080/nacos/的時(shí)候,就會(huì)被負(fù)載均衡的代理到之前我們啟動(dòng)的三個(gè)Nacos實(shí)例上了。這里我們沒(méi)有配置upstream的具體策略,默認(rèn)會(huì)使用線性輪訓(xùn)的方式,如果有需要,也可以配置上更為復(fù)雜的分發(fā)策略。這部分是Nginx的使用內(nèi)容,這里就不作具體介紹了。

這里提一下我在嘗試搭建時(shí)候碰到的一個(gè)問(wèn)題,如果您也遇到了,希望下面的說(shuō)明可以幫您解決問(wèn)題。

錯(cuò)誤信息如下:

2019-02-20 16:20:53,216 INFO The host [nacos_server] is not valid
 Note: further occurrences of request parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: The character [_] is never valid in a domain name.
    at org.apache.tomcat.util.http.parser.HttpParser$DomainParseState.next(HttpParser.java:926)
    at org.apache.tomcat.util.http.parser.HttpParser.readHostDomainName(HttpParser.java:822)
    at org.apache.tomcat.util.http.parser.Host.parse(Host.java:71)
    at org.apache.tomcat.util.http.parser.Host.parse(Host.java:45)
    at org.apache.coyote.AbstractProcessor.parseHost(AbstractProcessor.java:288)
    at org.apache.coyote.http11.Http11Processor.prepareRequest(Http11Processor.java:809)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:791)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

主要原因是,一開(kāi)始在配置upstream的時(shí)候,用了nacos_server作為名稱(chēng),而在Nacos使用的Tomcat版本中不支持_符號(hào)出現(xiàn)在域名位置,所以上面截圖給出的upstream的名稱(chēng)是nacosserver,去掉了_符號(hào)。

到這里,Nacos的集群搭建就完成了!我們可以通過(guò)Nginx配置的代理地址:http://localhost:8080/nacos/來(lái)訪問(wèn)Nacos,在Spring Cloud應(yīng)用中也可以用這個(gè)地址來(lái)作為注冊(cè)中心和配置中心的訪問(wèn)地址來(lái)配置。讀者可以使用文末的代碼示例來(lái)修改原來(lái)的Nacos地址來(lái)啟動(dòng),看是否可以獲取配置信息來(lái)驗(yàn)證集群的搭建是否成功。也可以故意的關(guān)閉某個(gè)實(shí)例,來(lái)驗(yàn)證Nacos集群是否還能正常服務(wù)。

深入思考

在Nacos官方文檔的指引下,Nacos的集群搭建總體上還是非常順暢的,沒(méi)有什么太大的難度。但是值得思考的一個(gè)問(wèn)題跟在上一篇中講數(shù)據(jù)持久化的思考類(lèi)似,作為一個(gè)注冊(cè)中心和配置中心,Nacos的架構(gòu)是否顯得太過(guò)于臃腫?除了Nacos自身之外,還需要依賴(lài)更多的中間件來(lái)完成整套生產(chǎn)環(huán)境的搭建,相較于其他的可以用于服務(wù)發(fā)現(xiàn)與配置的中間件來(lái)說(shuō),就不那么有優(yōu)勢(shì)了。尤其對(duì)于小團(tuán)隊(duì)來(lái)說(shuō),這樣的復(fù)雜度與成本投入,也是在選型的時(shí)候需要去考慮的。

代碼示例

本文介紹內(nèi)容的客戶(hù)端代碼,示例讀者可以通過(guò)查看下面?zhèn)}庫(kù)中的alibaba-nacos-config-client項(xiàng)目:

Github:https://github.com/dyc87112/SpringCloud-Learning/

Gitee:https://gitee.com/didispace/SpringCloud-Learning/

如果您對(duì)這些感興趣,歡迎star、follow、收藏、轉(zhuǎn)發(fā)給予支持!

以下專(zhuān)題教程也許您會(huì)有興趣

Spring Boot基礎(chǔ)教程

【新版】Spring Cloud從入門(mén)到精通

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

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

相關(guān)文章

  • Spring Cloud Alibaba基礎(chǔ)教程Nacos集群部署

    摘要:通過(guò)本文,我們將完成生產(chǎn)環(huán)境的搭建。第二步修改文件,增加支持?jǐn)?shù)據(jù)源配置,添加目前只支持?jǐn)?shù)據(jù)源的用戶(hù)名和密碼。另外,的集群需要個(gè)或個(gè)以上的節(jié)點(diǎn),并且確保這三個(gè)節(jié)點(diǎn)之間是可以互相訪問(wèn)的。也可以故意的關(guān)閉某個(gè)實(shí)例,來(lái)驗(yàn)證集群是否還能正常服務(wù)。 前情回顧: 《Spring Cloud Alibaba基礎(chǔ)教程:使用Nacos實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)》 《Spring Cloud Alibaba基礎(chǔ)教...

    godruoyi 評(píng)論0 收藏0
  • Spring Cloud Alibaba基礎(chǔ)教程Nacos數(shù)據(jù)持久化

    摘要:在搭建集群之前,我們需要先修改的數(shù)據(jù)持久化配置為存儲(chǔ)。所以,如果啟動(dòng)多個(gè)默認(rèn)配置下的節(jié)點(diǎn),數(shù)據(jù)存儲(chǔ)是存在一致性問(wèn)題的。為了解決這個(gè)問(wèn)題,采用了集中式存儲(chǔ)的方式來(lái)支持集群化部署,目前只要支持的存儲(chǔ)。 前情回顧: 《Spring Cloud Alibaba基礎(chǔ)教程:使用Nacos實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)》 《Spring Cloud Alibaba基礎(chǔ)教程:支持的幾種服務(wù)消費(fèi)方式》 《Spri...

    endiat 評(píng)論0 收藏0
  • 公益:開(kāi)放一臺(tái)Nacos服務(wù)端給各位Spring Cloud愛(ài)好者

    摘要:之前開(kāi)放過(guò)一臺(tái)公益給大家,以方便大家在閱讀我博客中教程時(shí)候做實(shí)驗(yàn)。由于目前在連載,所以對(duì)應(yīng)的也部署了一臺(tái),并且也開(kāi)放出來(lái),給大家學(xué)習(xí)測(cè)試之用。 之前開(kāi)放過(guò)一臺(tái)公益Eureka Server給大家,以方便大家在閱讀我博客中教程時(shí)候做實(shí)驗(yàn)。由于目前在連載Spring Cloud Alibaba,所以對(duì)應(yīng)的也部署了一臺(tái)Nacos,并且也開(kāi)放出來(lái),給大家學(xué)習(xí)測(cè)試之用。 Nacos控制臺(tái) ...

    jk_v1 評(píng)論0 收藏0
  • Spring Cloud AlibabaSpring Boot、Spring Cloud之間不得不

    摘要:下表整理了目前的版本與版本的兼容關(guān)系還未所以,不論您是在讀我的基礎(chǔ)教程基礎(chǔ)教程還是正在連載的系列教程。 這篇博文是臨時(shí)增加出來(lái)的內(nèi)容,主要是由于最近連載《Spring Cloud Alibaba基礎(chǔ)教程》系列的時(shí)候,碰到讀者咨詢(xún)的大量問(wèn)題中存在一個(gè)比較普遍的問(wèn)題:版本的選擇。其實(shí)這類(lèi)問(wèn)題,在之前寫(xiě)Spring Cloud基礎(chǔ)教程的時(shí)候,就已經(jīng)發(fā)過(guò)一篇《聊聊Spring Cloud版本的...

    feng409 評(píng)論0 收藏0
  • Spring Cloud Alibaba基礎(chǔ)教程:Sentinel Dashboard中修改規(guī)則同步

    摘要:下面通過(guò)這篇,詳細(xì)介紹當(dāng)使用作為配置中心之后,如何實(shí)現(xiàn)中修改規(guī)則同步到。關(guān)于下面改造的原理和分析可以見(jiàn)上一篇中修改規(guī)則同步到的頭兩節(jié)內(nèi)容,這里不重復(fù)介紹了。但是由于考慮到與的結(jié)合使用,略作修改。主要就是中存儲(chǔ)配置的和不要弄錯(cuò)。 上一篇我們介紹了如何通過(guò)改造Sentinel Dashboard來(lái)實(shí)現(xiàn)修改規(guī)則之后自動(dòng)同步到Apollo。下面通過(guò)這篇,詳細(xì)介紹當(dāng)使用Nacos作為配置中心之后...

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

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

0條評(píng)論

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