花了一个下午集成 Spring Cloud 和 Nacos,大体上还是比较顺利,只是在引入哪些依赖上花了点心思。下面把完整的步骤写下来,避免后人再走同样的弯路。
安装 nacos 服务器
安装 nacos 服务器的官方文档链接是 nacos.io/zh-cn/docs/… ,主要就是下载编译后的压缩包或者是下载源码后自己编译。我是直接在 github.com/alibaba/nac… 上下载源码的压缩包,然后使用命令编译。
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
启动 nacos 服务器
windows下是使用命令 startup.cmd -m standalone 启动服务器。图中 startup_standalone.cmd 脚本文件是我为了省事,把启动命令写到脚本文件中。
启动服务器成功后可以用浏览器登录 http://127.0.0.1:8848/nacos 控制台,默认密码是 nacos/nacos。
Maven项目里添加依赖
...
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<spring.boot.version>2.6.3</spring.boot.version>
<spring.cloud.version>2021.0.1</spring.cloud.version>
<alibaba.cloud.version>2021.0.1.0</alibaba.cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${alibaba.cloud.version}</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-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
<!-- 此处使用阿里云maven仓库避免网络问题加载依赖失败 -->
<repositories>
<repository>
<id>aliyunmaven</id>
<name>aliyunmaven</name>
<url>https://maven.aliyun.com/repository/central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
...
添加 bootstrap 和 application 文件
bootstrap.properties
# Nacos配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# 服务名称,此处example可以替换成其它名称
spring.application.name=example
spring.cloud.nacos.config.file-extension=properties
application.properties
server.port=8080
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
启动类上加上注解
@EnableDiscoveryClient
@EnableAutoConfiguration
@SpringBootApplication
public class ExampleApplication {
public static void main(String[] args) {
SpringApplication.run(ExampleApplication.class);
}
}
启动服务之后就能在 nacos 里看到服务。