天天看點

五分鐘帶你玩轉spring cloud alibaba(四)實戰!springboot注冊到nacos

在樓主公司選擇時,根據并發量考慮,選擇了單機部署(雖然官網推薦的是叢集部署,但是是給大在nacos部署方面,樓主根據公司并發量選擇的單機部署(雖然推薦的是叢集部署,但是是給大廠推薦的)

pom檔案

<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- SpringCloud Alibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>      

在pom.xml檔案中最好版本配置 否則會報各種各樣的錯 

版本可以根據官方文檔選擇:

https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

同時為了保證版本相同建議再父工程中加入以下配置 意思是子工程groupid為org.springframework.cloud,com.alibaba.cloud,org.springframework.boot的都依賴父工程版本

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <!--maven不支援多繼承,使用import來依賴管理配置-->
                <scope>import</scope>
            </dependency>
            <!-- SpringCloud Alibaba 微服務 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- SpringBoot 依賴配置 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
</dependencyManagement>      

bootstrap.xml

這裡一定要使用bootstrap.yml而不是application.yml 因為bootstrap.yml運作先于後者,如果使用application.yml可能會出現即使有注冊的位址 還是去連接配接localhost:8848

spring:
  application:
    name: systemp
    # 資料源配置
  cloud:
    nacos:
      discovery:
        # 服務注冊位址
        server-addr: 192.168.xx.x:8848
        #命名空間
        namespace: b80f0aa4-3af2-a6e3-c6fda24c2bc0
        #分組
        group: xxx
      config:
        # 配置中心位址
        server-addr: 192.168.xx.xx:8848
        # 配置檔案格式
        file-extension: yml
        #命名空間
        namespace: b80f0aa4-3af2-a6e3-c6fda24c2bc0
        #分組
        group: xxx      

可以為服務指定namespace和group,在一個namespace和group中的服務隻能擷取同namespace和group中的服務,這樣可以同時配置dev和pro環境。擷取小組内的小夥伴都可以連接配接一個nacos服務,而不是像eureka 一人啟動一個

建立命名空間(配置檔案中是命名空間id)

五分鐘帶你玩轉spring cloud alibaba(四)實戰!springboot注冊到nacos

分組不用在nacos中建立 ,直接編寫即可

啟動類

在spring boot啟動類上加入@EnableDiscoveryClient注解即可

@EnableDiscoveryClient
@SpringBootApplication
public class GetwayApplication {
 
    public static void main(String[] args) {
        //去除nacos日志
        System.setProperty("nacos.logging.default.config.enabled", "false");
        SpringApplication.run(GetwayApplication.class, args);
    }
 
}      

注意 如果使用了logback作為日志 System.setProperty("nacos.logging.default.config.enabled", "false"); 需要添加 否則會因為日志命名報錯

然後啟動服務,通路ip:8848/nacos可以驗證是否注冊成功

五分鐘帶你玩轉spring cloud alibaba(四)實戰!springboot注冊到nacos

同時也釋出到了指定的namespace和groupid