成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

阿里出品的Nacos作為微服務(wù)注冊中心,用了都說好?。?!

開發(fā) 前端
Nacos可以說是是一個功能豐富、易用性強(qiáng)、可擴(kuò)展性好、高可用性的服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)治理平臺。對于分布式系統(tǒng)的開發(fā)和運(yùn)維來說,Nacos是一個非常好的選擇。

哈嘍,大家好,我是指北君。

目前國內(nèi)大部分的公司都會使用阿里出品的Nacos作為微服務(wù)注冊中心,配置中心來使用,今天了不起為大家介紹一下Nacos的基本使用。

一、Nacos簡介

Nacos的概念和功能

Nacos是一個面向微服務(wù)架構(gòu)的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)治理平臺,它能夠幫助開發(fā)人員和運(yùn)維人員實現(xiàn)服務(wù)注冊、配置管理、DNS和負(fù)載均衡等功能。

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

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

總之,Nacos是一個強(qiáng)大的服務(wù)注冊與發(fā)現(xiàn)中心,提供了動態(tài)配置管理和服務(wù)治理等功能,幫助開發(fā)者輕松構(gòu)建高可用、高性能的微服務(wù)架構(gòu)。

二、安裝使用Nacos

2.1安裝Nacos

Nacos是一個基于Java開發(fā)的應(yīng)用,它可以作為獨(dú)立的服務(wù)運(yùn)行,也可以作為嵌入式組件在Java應(yīng)用程序中使用。以下是Nacos的安裝和使用方法:

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

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

注冊服務(wù)

Nacos的服務(wù)注冊和發(fā)現(xiàn)功能是其核心功能之一,下面是一個簡單的Java示例,演示如何使用Nacos SDK注冊服務(wù):

  • 添加依賴。在Maven項目中添加以下依賴:
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>2.0.2</version>
</dependency>
  • 創(chuàng)建Nacos服務(wù)注冊實例:在Java應(yīng)用程序中,可以通過以下代碼創(chuàng)建Nacos服務(wù)注冊實例,設(shè)置Nacos服務(wù)器的地址和端口號:
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服務(wù)器的地址和端口號
        NamingService namingService = NamingFactory.createNamingService(serverAddr);
        
        // 注冊服務(wù)
        namingService.registerInstance("my-service", "127.0.0.1", 8080);
        
        // 關(guān)閉Nacos服務(wù)注冊實例
        namingService.shutdown();
    }
}
  • 注冊服務(wù):通過NamingService對象的registerInstance()方法注冊服務(wù),需要指定服務(wù)的名稱、IP地址和端口號等信息,例如:
namingService.registerInstance("my-service", "127.0.0.1", 8080);
  • 關(guān)閉服務(wù)注冊實例:在服務(wù)注冊完成后,需要關(guān)閉NamingService對象,例
namingService.shutdown();

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

配置服務(wù)

Nacos的配置管理功能可以幫助開發(fā)者動態(tài)管理應(yīng)用程序的配置信息。下面是一個簡單的Java示例,演示如何使用Nacos SDK實現(xiàn)配置服務(wù)的獲取和監(jiān)聽:

  • 添加依賴,在Maven項目中添加以下依賴:
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>2.0.2</version>
</dependency>
  • 創(chuàng)建Nacos配置服務(wù)實例:在Java應(yīng)用程序中,可以通過以下代碼創(chuàng)建Nacos配置服務(wù)實例,設(shè)置Nacos服務(wù)器的地址和端口號:
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服務(wù)器的地址和端口號
        String dataId = "my-config"; // 配置項的ID
        String group = "DEFAULT_GROUP"; // 配置項的分組
        
        // 創(chuàng)建Nacos配置服務(wù)實例
        ConfigService configService = ConfigFactory.createConfigService(serverAddr);
        
        // 獲取配置
        String config = configService.getConfig(dataId, group, 5000);
        System.out.println(config);
        
        // 監(jiān)聽配置
        configService.addListener(dataId, group, new Listener() {
            @Override
            public void receiveConfigInfo(String config) {
                System.out.println(config);
            }
            @Override
            public Executor getExecutor() {
                return null;
            }
        });
    }
}
  • 獲取配置:通過ConfigService對象的getConfig()方法獲取指定配置項的配置信息,需要指定配置項的ID和分組等信息,例如:
String dataId = "my-config";
String group = "DEFAULT_GROUP";
String config = configService.getConfig(dataId, group, 5000);
System.out.println(config);
  • 監(jiān)聽配置:通過ConfigService對象的addListener()方法監(jiān)聽指定配置項的配置變化,需要實現(xiàn)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實現(xiàn)配置服務(wù)的示例,當(dāng)然,在實際使用中,還需要考慮配置的加密、灰度發(fā)布等問題。

服務(wù)發(fā)現(xiàn)

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

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

}
  1. 添加服務(wù)消費(fèi)者:在Spring Boot應(yīng)用程序中,添加一個服務(wù)消費(fèi)者的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提供的一個用于發(fā)送HTTP請求的工具類。在hello()方法中,通過RestTemplate發(fā)送GET請求,請求URL為http://my-service/hello,其中my-service為服務(wù)提供者的服務(wù)名。

啟動服務(wù):分別啟動服務(wù)提供者和服務(wù)消費(fèi)者兩個Spring Boot應(yīng)用程序,可以看到服務(wù)消費(fèi)者通過服務(wù)發(fā)現(xiàn)機(jī)制自動發(fā)現(xiàn)了服務(wù)提供者,從而可以調(diào)用服務(wù)提供者的REST接口。

需要注意的是,Nacos服務(wù)發(fā)現(xiàn)默認(rèn)使用Ribbon進(jìn)行負(fù)載均衡,因此在上面的示例中,如果服務(wù)提供者有多個實例,服務(wù)消費(fèi)者將會自動進(jìn)行負(fù)載均衡,請求不同的服務(wù)實例。

配置中心

確保你已經(jīng)在Nacos中創(chuàng)建了配置,例如:

# 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注解,它們分別啟用服務(wù)發(fā)現(xiàn)和動態(tài)刷新配置:

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中添加以下內(nèi)容,告訴Spring Boot如何連接到Nacos服務(wù)器:

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

現(xiàn)在,你可以在你的代碼中使用@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;
    }

}

現(xiàn)在,當(dāng)你更新Nacos中的配置時,Spring Boot應(yīng)用程序?qū)⒆詣訖z測到更改并動態(tài)地重新加載配置。

監(jiān)控中心

Nacos監(jiān)控中心可以幫助你實時監(jiān)控Nacos實例的運(yùn)行狀態(tài),包括健康狀態(tài)、配置狀態(tài)、元數(shù)據(jù)狀態(tài)等。下面是使用Nacos監(jiān)控中心的步驟:

  • 確保Nacos已啟動并運(yùn)行正常。
  • 在Nacos控制臺中,點(diǎn)擊左側(cè)導(dǎo)航欄中的“監(jiān)控”按鈕,進(jìn)入監(jiān)控中心頁面。
  • 在監(jiān)控中心頁面中,你可以看到以下三個部分:

首頁:顯示Nacos實例的整體健康狀態(tài),包括Nacos實例數(shù)、實例狀態(tài)、服務(wù)數(shù)量、配置數(shù)量、命名空間數(shù)量等。

服務(wù)健康:顯示Nacos實例中每個服務(wù)的健康狀態(tài),包括服務(wù)名稱、實例數(shù)、健康實例數(shù)、不健康實例數(shù)、最近一次健康狀態(tài)檢查時間等。

配置管理:顯示Nacos實例中每個配置的狀態(tài),包括配置ID、配置Data ID、配置Group、配置類型、最近一次修改時間等。

  • 如果你想查看更詳細(xì)的監(jiān)控信息,可以點(diǎn)擊“服務(wù)健康”或“配置管理”頁面中的某個服務(wù)或配置,進(jìn)入詳細(xì)信息頁面。
  • 在詳細(xì)信息頁面中,你可以看到該服務(wù)或配置的實例列表、健康狀態(tài)、元數(shù)據(jù)信息等。

除了使用監(jiān)控中心頁面,你也可以通過Nacos提供的API接口獲取監(jiān)控信息。例如,你可以通過以下API接口獲取服務(wù)健康狀態(tài):

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

其中,<serviceName>是你要查詢的服務(wù)名稱。該接口將返回該服務(wù)的健康狀態(tài)信息。你也可以使用其他API接口獲取其他監(jiān)控信息,具體請參考Nacos官方文檔。

三、Nacos與Eureka的區(qū)別

數(shù)據(jù)一致性實現(xiàn)方式不同 中,服務(wù)注冊和發(fā)現(xiàn)依賴于心跳檢測機(jī)制,每隔一段時間,客戶端會發(fā)送心跳包維護(hù)自己的狀態(tài),并將服務(wù)狀態(tài)信息告知Eureka Server。而Nacos 的服務(wù)注冊與發(fā)現(xiàn)機(jī)制采用了更加強(qiáng)大的基于成熟Raft協(xié)議的Paxos算法實現(xiàn)讀寫數(shù)據(jù)一致性。
  • 功能組件的支持程度不同Nacos 提供了服務(wù)注冊、配置管理、流量控制、DNS 服務(wù)等一系列功能的支持,用來支持微服務(wù)架構(gòu)的需要;而Eureka 則只提供了服務(wù)的注冊和發(fā)現(xiàn)功能,缺乏其他全方位的支持。
  • 開源社區(qū)活躍度不同 相較于Eureka,Nacos 的開源社區(qū)更為活躍,且已成為了 Apache 軟件基金會 Top-Level Project,開發(fā)進(jìn)展速度更快。 節(jié)約開發(fā)成本

基本上,Nacos可以說是是一個功能豐富、易用性強(qiáng)、可擴(kuò)展性好、高可用性的服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)治理平臺。對于分布式系統(tǒng)的開發(fā)和運(yùn)維來說,Nacos是一個非常好的選擇。

責(zé)任編輯:武曉燕 來源: Java技術(shù)指北
相關(guān)推薦

2020-06-29 07:58:18

ZooKeeperConsul 注冊中心

2025-03-31 08:35:00

Eureka微服務(wù)架構(gòu)

2024-12-03 10:55:56

微服務(wù)架構(gòu)注冊中心

2019-08-23 10:34:05

微服務(wù)Eureka架構(gòu)

2023-09-26 11:59:48

ChatGPT人工智能

2021-08-04 11:54:25

Nacos注冊中心設(shè)計

2024-11-21 16:09:22

2023-03-01 08:15:10

NginxNacos

2023-07-18 08:28:58

注冊中心下線Nacos

2023-06-13 08:25:14

注冊中心Nacos上線

2023-10-30 09:35:01

注冊中心微服務(wù)

2021-07-12 08:00:21

Nacos 服務(wù)注冊源碼分析

2024-04-10 12:22:19

DubboNacos微服務(wù)

2022-08-30 22:12:19

Nacos組件服務(wù)注冊

2021-06-29 07:04:38

Nacos服務(wù)配置

2023-02-26 00:00:00

2023-06-20 08:59:25

微服務(wù)注冊中心運(yùn)維

2025-05-29 08:35:00

Nacos服務(wù)注冊開發(fā)

2025-03-07 08:17:36

2020-08-26 07:37:25

Nacos微服務(wù)SpringBoot
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 中文字幕av网站 | 亚洲成人动漫在线观看 | 男女羞羞在线观看 | 综合久久综合久久 | 毛片99| 亚洲精品麻豆 | 精精国产xxxx视频在线播放7 | 91成人小视频 | 色综合久久88色综合天天 | 观看毛片| 美女天天干天天操 | 久久精品久久精品久久精品 | 成人福利视频 | 国产一区二区三区视频 | 久久国产精彩视频 | 日韩精品一二三 | 国产视频黄色 | 午夜精品久久久久久久久久久久 | 91色在线 | 91综合网| 久久天堂 | 国产成人精品一区二区三区在线观看 | 国产精品大片在线观看 | 欧美在线小视频 | 九九视频在线观看 | 亚洲最新网址 | 国产精品高清一区二区三区 | 国产精品日韩在线观看一区二区 | 97人人澡人人爽91综合色 | 久久久久国色av免费观看性色 | 欧美成人激情 | 北条麻妃一区二区三区在线观看 | 欧美精品中文字幕久久二区 | 国产成人免费视频 | 国产免费福利小视频 | 狠狠撸在线视频 | 亚洲国产成人av | 狠狠操狠狠操 | 黄色三级免费 | www.中文字幕av | 久久久夜色精品亚洲 |