在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Nacos的概念和功能

科技綠洲 ? 來源:了不起 ? 作者:了不起 ? 2023-09-25 11:02 ? 次閱讀

1、Nacos簡介

Nacos的概念和功能

Nacos是一個面向微服務架構的動態服務發現、配置管理和服務治理平臺,它能夠幫助開發人員和運維人員實現服務注冊、配置管理、DNS和負載均衡等功能。

下面是一些Nacos的主要功能:

  1. 服務發現
  2. 配置管理
  3. DNS服務:Nacos支持將服務名解析為服務IP和端口號,提供了一種輕量級的服務發現方案,通過HTTP DNS協議來實現。
  4. 負載均衡
  5. 服務治理:Nacos通過服務治理功能,可以對服務實例進行管理和監控,包括實例上下線、心跳檢測、健康狀態等。同時,Nacos還支持路由策略、限流、熔斷降級等功能,提高了服務的可用性和穩定性。

總之,Nacos是一個強大的服務注冊與發現中心,提供了動態配置管理和服務治理等功能,幫助開發者輕松構建高可用、高性能的微服務架構。

2、安裝使用Nacos

2.1安裝Nacos

Nacos是一個基于Java開發的應用,它可以作為獨立的服務運行,也可以作為嵌入式組件在Java應用程序中使用。以下是Nacos的安裝和使用方法:

  1. 下載Nacos:https://github.com/alibaba/nacos/releases
  2. 安裝Nacos:將下載的Nacos壓縮包解壓到指定目錄,進入解壓后的目錄,運行bin目錄下的startup.sh(Linux/Mac)或startup.cmd(Windows)腳本即可啟動Nacos。
  3. 訪問Nacos控制臺:默認情況下,Nacos控制臺的訪問地址為 http://localhost:8848/nacos
  4. 注冊服務:在Nacos控制臺中,可以通過服務管理界面注冊服務,輸入服務名稱和IP地址等信息即可完成服務注冊。同時,可以設置服務的健康檢查、負載均衡等屬性。
  5. 獲取服務:在應用程序中,可以通過Nacos提供的Java SDK或HTTP API獲取已注冊的服務信息。

除此之外,Nacos還提供了豐富的配置管理功能,可以幫助開發者管理應用程序的配置信息。可以通過Nacos控制臺或API等方式實現配置的動態管理和實時更新。

注冊服務

Nacos的服務注冊和發現功能是其核心功能之一,下面是一個簡單的Java示例,演示如何使用Nacos SDK注冊服務:

  1. 添加依賴。在Maven項目中添加以下依賴:
< dependency >
    < groupId >com.alibaba.nacos< /groupId >
    < artifactId >nacos-client< /artifactId >
    < version >2.0.2< /version >
< /dependency >
  1. 創建Nacos服務注冊實例:在Java應用程序中,可以通過以下代碼創建Nacos服務注冊實例,設置Nacos服務器的地址和端口號:
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingFactory;
import com.alibaba.nacos.api.naming.NamingService;

public class NacosServiceRegistry {
    public static void main(String[] args) throws NacosException {
        String serverAddr = "localhost:8848"; // Nacos服務器的地址和端口號
        NamingService namingService = NamingFactory.createNamingService(serverAddr);
        
        // 注冊服務
        namingService.registerInstance("my-service", "127.0.0.1", 8080);
        
        // 關閉Nacos服務注冊實例
        namingService.shutdown();
    }
}
  1. 注冊服務:通過NamingService對象的registerInstance()方法注冊服務,需要指定服務的名稱、IP地址和端口號等信息,例如:
namingService.registerInstance("my-service", "127.0.0.1", 8080);
  1. 關閉服務注冊實例:在服務注冊完成后,需要關閉NamingService對象,例
namingService.shutdown();

以上是一個簡單的使用Nacos SDK注冊服務的示例,當然,在實際使用中,還需要考慮服務的健康檢查、負載均衡等問題。

配置服務

Nacos的配置管理功能可以幫助開發者動態管理應用程序的配置信息。下面是一個簡單的Java示例,演示如何使用Nacos SDK實現配置服務的獲取和監聽:

  1. 添加依賴,在Maven項目中添加以下依賴:
< dependency >
    < groupId >com.alibaba.nacos< /groupId >
    < artifactId >nacos-client< /artifactId >
    < version >2.0.2< /version >
< /dependency >
  1. 創建Nacos配置服務實例:在Java應用程序中,可以通過以下代碼創建Nacos配置服務實例,設置Nacos服務器的地址和端口號:
import com.alibaba.nacos.api.config.ConfigFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.exception.NacosException;

public class NacosConfigService {
    public static void main(String[] args) throws NacosException {
        String serverAddr = "localhost:8848"; // Nacos服務器的地址和端口號
        String dataId = "my-config"; // 配置項的ID
        String group = "DEFAULT_GROUP"; // 配置項的分組
        
        // 創建Nacos配置服務實例
        ConfigService configService = ConfigFactory.createConfigService(serverAddr);
        
        // 獲取配置
        String config = configService.getConfig(dataId, group, 5000);
        System.out.println(config);
        
        // 監聽配置
        configService.addListener(dataId, group, new Listener() {
            @Override
            public void receiveConfigInfo(String config) {
                System.out.println(config);
            }
            @Override
            public Executor getExecutor() {
                return null;
            }
        });
    }
}
  1. 獲取配置:通過ConfigService對象的getConfig()方法獲取指定配置項的配置信息,需要指定配置項的ID和分組等信息,例如:
String dataId = "my-config";
String group = "DEFAULT_GROUP";
String config = configService.getConfig(dataId, group, 5000);
System.out.println(config);
  1. 監聽配置:通過ConfigService對象的addListener()方法監聽指定配置項的配置變化,需要實現Listener接口中的receiveConfigInfo()方法,例如:
configService.addListener(dataId, group, new Listener() {
    @Override
    public void receiveConfigInfo(String config) {
        System.out.println(config);
    }
    @Override
    public Executor getExecutor() {
        return null;
    }
});

以上是一個簡單的使用Nacos SDK實現配置服務的示例,當然,在實際使用中,還需要考慮配置的加密、灰度發布等問題。

服務發現

  1. 添加依賴,例如在Maven項目中添加以下依賴:
< dependency >
    < groupId >com.alibaba.cloud< /groupId >
    < artifactId >spring-cloud-starter-alibaba-nacos-discovery< /artifactId >
    < version >2.2.3.RELEASE< /version >
< /dependency >
  1. 配置Nacos Server地址:在application.propertiesapplication.yml中,添加Nacos Server的地址和端口號:
spring.cloud.nacos.discovery.server-addr=localhost:8848
  1. 添加服務提供者:在Spring Boot應用程序中,添加一個服務提供者的REST接口,例如:
@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, world!";
    }

}
  1. 添加服務消費者:在Spring Boot應用程序中,添加一個服務消費者的REST接口,例如:
@RestController
public class HelloConsumerController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/hello")
    public String hello() {
        String url = "http://my-service/hello";
        String result = restTemplate.getForObject(url, String.class);
        return result;
    }

}

在上面的代碼中,RestTemplate是Spring提供的一個用于發送HTTP請求的工具類。在hello()方法中,通過RestTemplate發送GET請求,請求URL為http://my-service/hello,其中my-service為服務提供者的服務名。

啟動服務:分別啟動服務提供者和服務消費者兩個Spring Boot應用程序,可以看到服務消費者通過服務發現機制自動發現了服務提供者,從而可以調用服務提供者的REST接口。

需要注意的是,Nacos服務發現默認使用Ribbon進行負載均衡,因此在上面的示例中,如果服務提供者有多個實例,服務消費者將會自動進行負載均衡,請求不同的服務實例。

配置中心

確保你已經在Nacos中創建了配置,例如:

# application.yml
example:
  greeting: Hello, World!

接下來,在Spring Boot項目中添加依賴:

< dependency >
    < groupId >com.alibaba.cloud< /groupId >
    < artifactId >spring-cloud-starter-alibaba-nacos-config< /artifactId >
    < version >${nacos.config.version}< /version >
< /dependency >

在Spring Boot的啟動類中添加@EnableDiscoveryClient@RefreshScope注解,它們分別啟用服務發現和動態刷新配置:

javaCopy codeimport org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.context.config.annotation.RefreshScope;

@SpringBootApplication
@EnableDiscoveryClient
@RefreshScope
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

}

最后,在application.yml中添加以下內容,告訴Spring Boot如何連接到Nacos服務器:

spring:
  cloud:
    nacos:
      config:
        server-addr: localhost:8848 # Nacos服務器地址
        namespace: your-namespace # 命名空間

現在,你可以在你的代碼中使用@Value注解來注入Nacos配置中心的值了,如下所示:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {

    @Value("${example.greeting}")
    private String greeting;

    @GetMapping("/")
    public String index() {
        return greeting;
    }

}

現在,當你更新Nacos中的配置時,Spring Boot應用程序將自動檢測到更改并動態地重新加載配置。

監控中心

Nacos監控中心可以幫助你實時監控Nacos實例的運行狀態,包括健康狀態、配置狀態、元數據狀態等。下面是使用Nacos監控中心的步驟:

  1. 確保Nacos已啟動并運行正常。
  2. 在Nacos控制臺中,點擊左側導航欄中的“監控”按鈕,進入監控中心頁面。
  3. 在監控中心頁面中,你可以看到以下三個部分:
    • 首頁:顯示Nacos實例的整體健康狀態,包括Nacos實例數、實例狀態、服務數量、配置數量、命名空間數量等。
    • 服務健康:顯示Nacos實例中每個服務的健康狀態,包括服務名稱、實例數、健康實例數、不健康實例數、最近一次健康狀態檢查時間等。
    • 配置管理:顯示Nacos實例中每個配置的狀態,包括配置ID、配置Data ID、配置Group、配置類型、最近一次修改時間等。
  4. 如果你想查看更詳細的監控信息,可以點擊“服務健康”或“配置管理”頁面中的某個服務或配置,進入詳細信息頁面。
  5. 在詳細信息頁面中,你可以看到該服務或配置的實例列表、健康狀態、元數據信息等。

除了使用監控中心頁面,你也可以通過Nacos提供的API接口獲取監控信息。例如,你可以通過以下API接口獲取服務健康狀態:

GET /nacos/v1/ns/instance/health?serviceName=< serviceName >

其中,是你要查詢的服務名稱。該接口將返回該服務的健康狀態信息。你也可以使用其他API接口獲取其他監控信息,具體請參考Nacos官方文檔。

3、Nacos與Eureka的區別

  • 數據一致性實現方式不同

    在Eureka 中,服務注冊和發現依賴于心跳檢測機制,每隔一段時間,客戶端會發送心跳包維護自己的狀態,并將服務狀態信息告知Eureka Server。而Nacos 的服務注冊與發現機制采用了更加強大的基于成熟Raft協議的Paxos算法實現讀寫數據一致性。

  • 功能組件的支持程度不同
    Nacos 提供了服務注冊、配置管理、流量控制、DNS 服務等一系列功能的支持,用來支持微服務架構的需要;而Eureka 則只提供了服務的注冊和發現功能,缺乏其他全方位的支持。

  • 開源社區活躍度不同
    相較于Eureka,Nacos 的開源社區更為活躍,且已成為了 Apache 軟件基金會 Top-Level Project,開發進展速度更快。 節約開發成本

基本上,Nacos可以說是是一個功能豐富、易用性強、可擴展性好、高可用性的服務發現、配置管理和服務治理平臺。對于分布式系統的開發和運維來說,Nacos是一個非常好的選擇。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    20

    文章

    2983

    瀏覽量

    106549
  • 端口
    +關注

    關注

    4

    文章

    1006

    瀏覽量

    32650
  • 應用程序
    +關注

    關注

    38

    文章

    3316

    瀏覽量

    58553
  • 組件
    +關注

    關注

    1

    文章

    527

    瀏覽量

    18252
  • nacos
    +關注

    關注

    0

    文章

    10

    瀏覽量

    234
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Nacos是什么?Nacos配置管理技巧你知道嗎

    Nacos 是阿里巴巴今年7月份開源的項目,如其名, Naming Configuration Service ,專注于服務發現和配置管理領域。本系列文章,將從 5W1H(What、Where
    的頭像 發表于 10-29 08:53 ?1.5w次閱讀

    支持Dubbo生態發展,阿里巴巴啟動新的開源項目 Nacos

    ,其核心定位是 “一個更易于幫助構建云原生應用的動態服務發現、配置和服務管理平臺”。Nacos 有三大主要功能:服務發現與服務管理在采用以“服務(Service)”為中心的諸如微服務及云原生方式的現代
    發表于 07-05 17:35

    構建ARM64版本nacos docker鏡像

    在適配過程中有大量合作伙伴用到nacos且采用容器化部署,dockerhub未提供官方鏡像,因此需要在鯤鵬服務器自定義構建。構建前提:Docker已部署構建步驟:1、下載包含構建所需的腳本下載完成
    發表于 06-16 14:29

    還在為 Eureka 閉源擔心?Nacos 來了

    大主要功能:? 任務發現與服務管理在采用以“服務 (Service)”為中心的諸如微服務及云原生方式的現代應用架構時,動態服務發現至關重要。 Nacos 同時支持基于 DNS 和基于 RPC(如 Dubbo
    發表于 08-07 15:13 ?227次閱讀

    Nacos發布0.5.0版本,輕松玩轉動態 DNS 服務

    上報模式和服務端主動探測2種健康檢查模式。所以隨著Nacos 0.5.0 版本的發布,我們很高興的宣布,Nacos已經正式支持基于TTL的服務實例自動注銷功能。這個功能一部分是響應社區
    發表于 12-05 16:22 ?134次閱讀

    微服務配置中心實戰:Spring + MyBatis + Druid + Nacos

    在 結合場景談服務發現和配置 中我們講述了 Nacos 配置中心的三個典型的應用場景,包括如何在 Spring Boot 中使用 Nacos 配置中心將數據庫連接信息管控起來,而在“原生
    發表于 12-29 17:09 ?1179次閱讀
    微服務配置中心實戰:Spring + MyBatis + Druid + <b class='flag-5'>Nacos</b>

    Nacos 1.1.4 發布,業界率先支持 Istio MCP 協議

    Nacos是阿里巴巴開源的服務發現與配置管理項目,本次發布的1.1.4版本,主要帶來的是與Istio的對接功能,使用的是Istio最新的MCP協議。本文將介紹包括這個功能在內的新版本發布的功能
    發表于 11-14 23:06 ?1685次閱讀

    Nacos服務地址動態感知原理

    Nacos Server:Nacos服務提供者,里面包含的Open API是功能訪問入口,Conig Service、Naming Service 是Nacos提供的配置服務、命名服務
    的頭像 發表于 09-26 10:40 ?1913次閱讀

    Nacos為什么這么強?Nacos注冊中心的底層原理,從服務注冊到服務發現

    來源:碼猿技術專欄 1. Nacos介紹 2. Nacos注冊中心實現原理分析 2.1 Nacos架構圖 2.2 注冊中心的原理 3. Nacos源碼分析 3.1
    的頭像 發表于 10-08 16:46 ?1.2w次閱讀

    華為云CSE 關鍵特性,支持托管Nacos注冊配置中心

    華為云CSE關鍵特性,支持托管Nacos注冊配置中心 什么是Nacos Nacos是?Dynamic Naming and Configuration Service的首字母簡稱,相較之下,它更易
    的頭像 發表于 12-29 16:23 ?1175次閱讀
    華為云CSE 關鍵特性,支持托管<b class='flag-5'>Nacos</b>注冊配置中心

    華為云微服務引擎0停機遷移Nacos?它是這樣做的

    華為云微服務引擎| 0停機遷移Nacos? “它”是這樣做的 遷移云環境****場景 ? 微服務規模小,使用微服務引擎CSE成本太高。 ? dubbo/Nacos微服務架構改造
    的頭像 發表于 12-29 20:01 ?904次閱讀

    基于Nacos的簡單動態化線程池實現

    本文以Nacos作為服務配置中心,以修改線程池核心線程數、最大線程數為例,實現一個簡單的動態化線程池。
    發表于 01-06 14:14 ?1017次閱讀

    Nacos測試環境中cpu飆高的原因和解決方案

    出問題的項目是 需要連接各個不同nacos 和不同的 namespace 進行對應操作的 一個項目,對nacos的操作都是httpClient 調用的api接口,httpClient方法 沒有問題,不用質疑這個
    發表于 05-12 11:20 ?3387次閱讀
    <b class='flag-5'>Nacos</b>測試環境中cpu飆高的原因和解決方案

    Nacos、OpenFeign、Ribbon組件協調工作的原理

    ? ? Nacos 如何進行服務自動注冊? Ribbon OpenFeign 總結 前幾天有個大兄弟問了我一個問題,注冊中心要集成SpringCloud,想實現SpringCloud的負載均衡,需要
    的頭像 發表于 05-22 10:46 ?1233次閱讀
    <b class='flag-5'>Nacos</b>、OpenFeign、Ribbon組件協調工作的原理

    Nacos實現原理:SpringCloud集成Nacos的實現過程

    Nacos服務提供者,里面包含的Open API是功能訪問入口,Conig Service、Naming Service 是Nacos提供的配置服務、命名服務模塊。Consitency
    發表于 10-09 16:08 ?1337次閱讀
    <b class='flag-5'>Nacos</b>實現原理:SpringCloud集成<b class='flag-5'>Nacos</b>的實現過程
    主站蜘蛛池模板: 窝窝视频成人影院午夜在线 | 日韩xx00 | 日本一区二区免费在线观看 | 悠悠影院欧美日韩国产 | 国产经典三级在线 | 窝窝午夜看片 | 欧美在线视频一区二区三区 | 久久免费视频精品 | 日本黄色免费网址 | 亚洲一区二区三区免费在线观看 | 成人黄色免费网站 | 免费黄色福利视频 | 午夜久久久精品 | 天天激情综合 | 未满十八18周岁禁止免费国产 | 乱肉情欲杂乱小说 | 国产丝袜va丝袜老师 | 波多野结衣在线网址 | 久久婷婷一区二区三区 | 色婷婷久久合月综 | 成人午夜大片免费看爽爽爽 | 5151四虎永久在线精品免费 | 亚欧精品一区二区三区 | 国产91小视频在线观看 | 三级在线观看免播放网站 | 国产床戏无遮掩视频播放 | 九九九色| 西西人体44rt高清午夜 | 1024 cc香蕉在线观看看中文 | 天天想夜夜操 | 日本在线色视频 | 国产午夜免费视频片夜色 | 男人的午夜影院 | 亚洲高清中文字幕一区二区三区 | 色狠狠成人综合网 | 免看一级a毛片一片成人不卡 | 我不卡老子影院午夜伦我不卡四虎 | 国产性较精品视频免费 | 在线观看免费视频网站色 | 亚洲毛片网站 | 午夜高清在线观看免费6 |