国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

淺析Alibaba Nacos注冊中心源碼剖析

發(fā)布時(shí)間:2021-07-06 11:13 來(lái)源:腳本之家 閱讀:0 作者:PoetryAndTheDistance 欄目: 開(kāi)發(fā)技術(shù)

目錄

      Nacos&Ribbon&Feign核心微服務(wù)架構圖

      架構原理

      1. 微服務(wù)系統在啟動(dòng)時(shí)將自己注冊到服務(wù)注冊中心,同時(shí)外發(fā)布 Http 接口供其它系統調用(一般都是基于Spring MVC)
      2. 服務(wù)消費者基于 Feign 調用服務(wù)提供者對外發(fā)布的接口,先對調用的本地接口加上注解@FeignClient,Feign會(huì )針對加了該注解的接口生成動(dòng)態(tài)代理,服務(wù)消費者針對 Feign 生成的動(dòng)態(tài)代理去調用方法時(shí),會(huì )在底層生成Http協(xié)議格式的請求,類(lèi)似 /stock/deduct?productId=100
      3. Feign 最終會(huì )調用Ribbon從本地的Nacos注冊表的緩存里根據服務(wù)名取出服務(wù)提供在機器的列表,然后進(jìn)行負載均衡并選擇一臺機器出來(lái),對選出來(lái)的機器IP和端口拼接之前生成的url請求,生成調用的Http接口地址 ,最后基于HTTPClient調用請求

      Nacos架構圖

      Nacos核心功能點(diǎn)

      服務(wù)注冊:Nacos Client會(huì )通過(guò)發(fā)送REST請求的方式向Nacos Server注冊自己的服務(wù),提供自身的元數據,比如ip地址、端口等信息。Nacos Server接收到注冊請求后,就會(huì )把這些元數據信息存儲在一個(gè)雙層的內存Map中。

      服務(wù)心跳:在服務(wù)注冊后,Nacos Client會(huì )維護一個(gè)定時(shí)心跳來(lái)持續通知Nacos Server,說(shuō)明服務(wù)一直處于可用狀態(tài),防止被剔除。默認5s發(fā)送一次心跳。

      服務(wù)健康檢查:Nacos Server會(huì )開(kāi)啟一個(gè)定時(shí)任務(wù)用來(lái)檢查注冊服務(wù)實(shí)例的健康情況,對于超過(guò)15s沒(méi)有收到客戶(hù)端心跳的實(shí)例會(huì )將它的healthy屬性置為false(客戶(hù)端服務(wù)發(fā)現時(shí)不會(huì )發(fā)現),如果某個(gè)實(shí)例超過(guò)30秒沒(méi)有收到心跳,直接剔除該實(shí)例(被剔除的實(shí)例如果恢復發(fā)送心跳則會(huì )重新注冊)

      服務(wù)發(fā)現:服務(wù)消費者(Nacos Client)在調用服務(wù)提供者的服務(wù)時(shí),會(huì )發(fā)送一個(gè)REST請求給Nacos Server,獲取上面注冊的服務(wù)清單,并且緩存在Nacos Client本地,同時(shí)會(huì )在Nacos Client本地開(kāi)啟一個(gè)定時(shí)任務(wù)定時(shí)拉取服務(wù)端最新的注冊表信息更新到本地緩存

      服務(wù)同步:Nacos Server集群之間會(huì )互相同步服務(wù)實(shí)例,用來(lái)保證服務(wù)信息的一致性。

      Nacos核心功能源碼架構圖

      Nacos服務(wù)注冊表結構:Map

      <namespace, Map<group::serviceName, Service>>

      舉例說(shuō)明:

      Nacos服務(wù)端源碼單機運行

      # 下載nacos源碼
      git clone https://github.com/alibaba/nacos.git

      選擇Tag 1.4.1版本

      源碼整體結構(注意,nacos源碼導入要求maven 3.2.5以上版本):

      1、源碼單機運行:

      直接運行console模塊里的 com.alibaba.nacos.Nacos.java

      # 增加啟動(dòng)vm參數
      -Dnacos.standalone=true

      2、源碼集群運行(啟動(dòng)流程參見(jiàn)視頻):

      nacos集群需要配置mysql存儲,需要先創(chuàng )建一個(gè)數據,名字隨便取,然后執行 distribution/conf 目錄下的 nacos-mysql.sql 腳本,然后修改 console\src\main\resources 目錄下的 application.properties 文件里的mysql配置,如下所示

      ### If use MySQL as datasource:
      spring.datasource.platform=mysql
       
      ### Count of DB:
      db.num=1
       
      ### Connect URL of DB:
      db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
      db.user.0=root
      db.password.0=root

      運行console模塊里的 com.alibaba.nacos.Nacos.java,需要增加啟動(dòng)vm參數端口號和實(shí)例運行路徑nacos.home(對應的目錄需要自己提前創(chuàng )建好),每臺server的nacos.home目錄里需要創(chuàng )建一個(gè)conf文件夾,里面放一個(gè)cluster.conf文件,文件里需要把所有集群機器ip和端口寫(xiě)入進(jìn)去,見(jiàn)下圖:

      到此這篇關(guān)于淺析Alibaba Nacos注冊中心源碼剖析的文章就介紹到這了,更多相關(guān)Nacos注冊中心源碼內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

      免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

      少妇人妻无码永久免费视频| 亚洲AV综合色区无码另类小说| 国产又大又硬又粗| 日韩欧美在线综合网| 国产高潮国产高潮久久久| 国产精品亚洲а∨天堂2021|