添加依賴
沒有引入SpringCloud依賴
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<optional>true</optional>
</dependency>
</dependencies>
已經引入SpringCloud依賴,隻是整合Nacos
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
添加配置
bootstrap.yml
spring:
application:
name: act-model-web
cloud:
nacos:
discovery:
server-addr: ${NACOS_HOST:act-nacos}:${NACOS_PORT:8769}
//服務注冊的IP
ip: ${REGISTER_IP}
//網卡名,不配置則取第一塊網卡名
network-interface: ${NETWORK}
profiles:
active: dev
其他配置項
配置項 | Key | 預設值 | 說明 |
---|---|---|---|
服務端位址 | spring.cloud.nacos.discovery.server-addr | 無 | Nacos Server 啟動監聽的ip位址和端口 |
服務名 | spring.cloud.nacos.discovery.service | ${spring.application.name} | 給目前的服務命名 |
權重 | spring.cloud.nacos.discovery.weight | 1 | 取值範圍 1 到 100,數值越大,權重越大 |
網卡名 | spring.cloud.nacos.discovery.network-interface | 無 | 當IP未配置時,注冊的IP為此網卡所對應的IP位址,如果此項也未配置,則預設取第一塊網卡的位址 |
注冊的IP位址 | spring.cloud.nacos.discovery.ip | 無 | 優先級最高 |
注冊的端口 | spring.cloud.nacos.discovery.port | -1 | 預設情況下不用配置,會自動探測 |
命名空間 | spring.cloud.nacos.discovery.namespace | 無 | 常用場景之一是不同環境的注冊的區分隔離,例如開發測試環境和生産環境的資源(如配置、服務)隔離等。 |
AccessKey | spring.cloud.nacos.discovery.access-key | 無 | 當要上阿裡雲時,阿裡雲上面的一個雲賬号名 |
SecretKey | spring.cloud.nacos.discovery.secret-key | 無 | 當要上阿裡雲時,阿裡雲上面的一個雲賬号密碼 |
Metadata | spring.cloud.nacos.discovery.metadata | 無 | 使用Map格式配置,使用者可以根據自己的需要自定義一些和服務相關的中繼資料資訊 |
日志檔案名 | spring.cloud.nacos.discovery.log-name | 無 | |
叢集 | spring.cloud.nacos.discovery.cluster-name | DEFAULT | 配置成Nacos叢集名稱 |
接入點 | spring.cloud.nacos.discovery.enpoint | UTF-8 | 地域的某個服務的入口域名,通過此域名可以動态地拿到服務端位址 |
是否內建Ribbon | ribbon.nacos.enabled | true | 一般都設定成true即可 |
添加注解
在啟動類上添加@EnableDiscoveryClient,開啟服務發現功能子產品
大坑
注意Sring Cloud和Spring Boot以及Nacos的版本對應問題,版本不相容回導緻項目啟動正常,但是服務未成功注冊到Nacos上(項目啟動日志上不出現o.s.c.a.n.registry.NacosServiceRegistry : nacos registry, act-ldsm-web 172.31.131.77:50001 register finished這一行日志)
版本對應關系
Spring Cloud | Spring Boot | Spring Cloud Alibaba |
---|---|---|
Greenwich | 2.1.x | 0.2.2(還沒有RELEASE) |
Finchley | 2.0.x | 0.2.1 |
Edgware | 1.5.x | 0.1.1 |
Dalston | 1.5.x | 0.1.1 |