Nacos 注冊中心

2022-04-22 10:34 更新

Nacos 是 Dubbo 生態(tài)系統(tǒng)中重要的注冊中心實現(xiàn),其中 ?dubbo-registry-nacos? 則是 Dubbo 融合 Nacos 注冊中心的實現(xiàn)。

預備工作

當您將 dubbo-registry-nacos  整合到您的 Dubbo 工程之前,請確保后臺已經(jīng)啟動 Nacos 服務。如果您尚且不熟悉 Nacos 的基本使用的話,可先行參考 Nacos 快速入門。建議使用 Nacos 1.0.0 及以上的版本。

快速上手

Dubbo 融合 Nacos 成為注冊中心的操作步驟非常簡單,大致步驟可分為“增加 Maven 依賴”以及“配置注冊中心“。

增加 Maven 依賴

首先,您需要將 dubbo-registry-nacos 的 Maven 依賴添加到您的項目 pom.xml 文件中,并且強烈地推薦您使用 Dubbo 2.6.5:

<dependencies>

    ...
        
    <!-- Dubbo Nacos registry dependency -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo-registry-nacos</artifactId>
        <version>0.0.2</version>
    </dependency>   
    
    <!-- Keep latest Nacos client version -->
    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
        <version>[0.6.1,)</version>
    </dependency>
    
    <!-- Dubbo dependency -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.6.5</version>
    </dependency>
    
    <!-- Alibaba Spring Context extension -->
    <dependency>
        <groupId>com.alibaba.spring</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>1.0.2</version>
    </dependency>

    ...
    
</dependencies>

當項目中添加 dubbo-registry-nacos 后,您無需顯式地編程實現(xiàn)服務發(fā)現(xiàn)和注冊邏輯,實際實現(xiàn)由該三方包提供,接下來配置 Naocs 注冊中心。

配置注冊中心

假設您 Dubbo 應用使用 Spring Framework 裝配,將有兩種配置方法可選,分別為:Dubbo Spring 外部化配置以及 Spring XML 配置文件,推薦前者。

Dubbo Spring 外部化配置

參考

Dubbo Spring 外部化配置是由 Dubbo 2.5.8 引入的新特性,可通過 Spring Environment 屬性自動地生成并綁定 Dubbo 配置 Bean,實現(xiàn)配置簡化,并且降低微服務開發(fā)門檻。

假設您的 Nacos Server 同樣運行在服務器 10.20.153.10 上,并使用默認 Nacos 服務端口 8848,您只需將 dubbo.registry.address 屬性調(diào)整如下:

## 其他屬性保持不變

## Nacos registry address
dubbo.registry.address = nacos://10.20.153.10:8848
...

隨后,重啟您的 Dubbo 應用,Dubbo 的服務提供和消費信息在 Nacos 控制臺中可以顯示:

dubbo-registry-nacos-1.png

如圖所示,服務名前綴為 providers: 的信息為服務提供者的元信息,consumers: 則代表服務消費者的元信息。點擊“詳情”可查看服務狀態(tài)詳情:

image-dubbo-registry-nacos-2.png

如果您正在使用 Spring XML 配置文件裝配 Dubbo 注冊中心的話,請參考下一節(jié)。

Spring XML 配置文件

與 Dubbo Spring 外部化配置 配置類似,只需要調(diào)整 address 屬性配置即可:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd        http://dubbo.apache.org/schema/dubbo        http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
 
    <!-- 提供方應用信息,用于計算依賴關系 -->
    <dubbo:application name="dubbo-provider-xml-demo"  />
 
    <!-- 使用 Nacos 注冊中心 -->
    <dubbo:registry address="nacos://10.20.153.10:8848" />
 	...
</beans>

重啟 Dubbo 應用后,您同樣也能發(fā)現(xiàn)服務提供方和消費方的注冊元信息呈現(xiàn)在 Nacos 控制臺中:

dubbo-registry-nacos-3.png

附加信息: 在nacos-server@1.0.0版本后,支持客戶端通過上報一些包含特定的元數(shù)據(jù)的實例到服務端來控制實例的一些行為。

例如:

preserved.heart.beat.timeout : 該實例在不發(fā)送心跳后,從健康到不健康的時間。(單位:毫秒) 

preserved.ip.delete.timeout : 該實例在不發(fā)送心跳后,被服務端下掉該實例的時間。(單位:毫秒) 

preserved.heart.beat.interval : 該實例在客戶端上報心跳的間隔時間。(單位:毫秒) 

preserved.instance.id.generator: 該實例的id生成策略,值為snowflake時,從0開始增加。 

preserved.register.source : 保留鍵,目前未使用。

該功能將在Dubbo@2.7.10開始支持,通過在address中增加參數(shù)來進行配置. 例如: nacos://10.20.153.10:8848?preserved.heart.beat.timeout=15000&preserved.ip.delete.timeout=30000&preserved.heart.beat.interval=10000


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號