最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年05月10日 10:51:39   作者:PoetryAndTheDistance  
這篇文章主要介紹了淺析Alibaba Nacos注冊中心源碼剖析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Nacos&Ribbon&Feign核心微服務架構圖

0

架構原理

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

Nacos架構圖

0

Nacos核心功能點

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

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

服務健康檢查:Nacos Server會開啟一個定時任務用來檢查注冊服務實例的健康情況,對于超過15s沒有收到客戶端心跳的實例會將它的healthy屬性置為false(客戶端服務發(fā)現(xiàn)時不會發(fā)現(xiàn)),如果某個實例超過30秒沒有收到心跳,直接剔除該實例(被剔除的實例如果恢復發(fā)送心跳則會重新注冊)

服務發(fā)現(xiàn):服務消費者(Nacos Client)在調(diào)用服務提供者的服務時,會發(fā)送一個REST請求給Nacos Server,獲取上面注冊的服務清單,并且緩存在Nacos Client本地,同時會在Nacos Client本地開啟一個定時任務定時拉取服務端最新的注冊表信息更新到本地緩存

服務同步:Nacos Server集群之間會互相同步服務實例,用來保證服務信息的一致性。

Nacos核心功能源碼架構圖

0

Nacos服務注冊表結構:Map

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

0

舉例說明:

0

Nacos服務端源碼單機運行

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

選擇Tag 1.4.1版本

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

0

1、源碼單機運行:

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

# 增加啟動vm參數(shù)
-Dnacos.standalone=true

0

2、源碼集群運行(啟動流程參見視頻):

nacos集群需要配置mysql存儲,需要先創(chuàng)建一個數(shù)據(jù),名字隨便取,然后執(zhí)行 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,需要增加啟動vm參數(shù)端口號和實例運行路徑nacos.home(對應的目錄需要自己提前創(chuàng)建好),每臺server的nacos.home目錄里需要創(chuàng)建一個conf文件夾,里面放一個cluster.conf文件,文件里需要把所有集群機器ip和端口寫入進去,見下圖:

0

0

0

0

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

相關文章

  • 使用bitset實現(xiàn)毫秒級查詢(實例講解)

    使用bitset實現(xiàn)毫秒級查詢(實例講解)

    下面小編就為大家?guī)硪黄褂胋itset實現(xiàn)毫秒級查詢(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java 之類型轉換與多態(tài)詳情

    Java 之類型轉換與多態(tài)詳情

    Java使用類創(chuàng)造新的類型(type),并使用繼承來便利我們創(chuàng)建類。再深一層講類型,并是多態(tài)(polymorphism)的概念。本文將給大家介紹Java 的類型轉換與多態(tài),需要的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • 詳談java線程與線程、進程與進程間通信

    詳談java線程與線程、進程與進程間通信

    下面小編就為大家?guī)硪黄斦刯ava線程與線程、進程與進程間通信。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • MyBatis 實現(xiàn)數(shù)據(jù)的批量新增和刪除的操作

    MyBatis 實現(xiàn)數(shù)據(jù)的批量新增和刪除的操作

    這篇文章主要介紹了MyBatis 實現(xiàn)數(shù)據(jù)的批量新增和刪除的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java中的synchronized鎖膨脹詳解

    Java中的synchronized鎖膨脹詳解

    這篇文章主要介紹了Java中的synchronized鎖膨脹詳解,正常創(chuàng)建的對象,狀態(tài)為無鎖,對象頭的Mark?Word?中主要記錄了?對象的年齡,也就是經(jīng)歷了多少次GC還存活下來,需要的朋友可以參考下
    2024-01-01
  • drools中then部分的寫法(推薦)

    drools中then部分的寫法(推薦)

    本文介紹一下drools中then部分的寫法,以及一些內(nèi)置的方法,比如insert/delete/modify等等。同時也介紹一下rule的繼承,和在when中實現(xiàn)if else if?等操作,感興趣的朋友跟隨小編一起看看吧
    2022-05-05
  • Kafka攔截器的神奇操作方法

    Kafka攔截器的神奇操作方法

    Kafka攔截器是一種強大的機制,用于在消息發(fā)送和接收過程中插入自定義邏輯,它們可以用于消息定制、日志記錄、監(jiān)控、業(yè)務邏輯集成、性能統(tǒng)計和異常處理等,本文介紹Kafka攔截器的神奇操作,感興趣的朋友一起看看吧
    2025-01-01
  • Java實現(xiàn)統(tǒng)計文件夾下所有文件的字數(shù)

    Java實現(xiàn)統(tǒng)計文件夾下所有文件的字數(shù)

    這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)統(tǒng)計文件夾下所有文件的字數(shù),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • Java Apache Shiro安全框架快速開發(fā)詳解流程

    Java Apache Shiro安全框架快速開發(fā)詳解流程

    Apache Shiro是一個強大且易用的Java安全框架,執(zhí)行身份驗證、授權、密碼和會話管理。使用Shiro的易于理解的API,您可以快速、輕松地獲得任何應用程序,從最小的移動應用程序到最大的網(wǎng)絡和企業(yè)應用程序
    2021-10-10
  • Springboot實現(xiàn)給前端返回一個tree結構方法

    Springboot實現(xiàn)給前端返回一個tree結構方法

    這篇文章主要介紹了SpringBoot返回給前端一個tree結構的實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論

长海县| 邳州市| 盘锦市| 闵行区| 和顺县| 新密市| 鄂尔多斯市| 六盘水市| 嘉祥县| 宣威市| 屯留县| 金华市| 兴义市| 兰坪| 闸北区| 宝清县| 介休市| 桑日县| 蓝山县| 桐乡市| 准格尔旗| 武义县| 太保市| 简阳市| 新密市| 霍城县| 柳江县| 杭锦后旗| 和顺县| 永州市| 裕民县| 青州市| 本溪| 工布江达县| 德江县| 休宁县| 剑阁县| 天津市| 内黄县| 饶平县| 金塔县|