SpringCloud集成Nacos

下载Nacos

下载地址 这里以2.0.4版本为例,注意早先有些版本不支持Java11

安装使用

常用命令

# 解压命令
tar -zxvf nacos-server-2.0.4.tar.gz

# 单节点启动
./starup.sh -m standalone

# 关闭服务
./shutdown.sh

# 访问路径
http://ip:8848/nacos

基本配置

若要修改Nacos的一些配置,如端口号等,可修改[安装目录]/conf/application.properties文件,例如我的安装目录为/opt/wong/nacos/,则修改/opt/wong/nacos/conf/application.properties文件中的server.port=9088,将默认端口由8848修改为9088。

SpringCloud集成注册中心

  • 注意事项

    在微服务项目中集成Nacos,需要注意SpringCloud Alibaba 与 SpringCloud 的版本对应关系。

​ 本例版本关系如下:

<!-- SpringCloud Alibaba 版本 2.2.6.RELEASE -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.6.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<!-- SpringBoot 版本 2.5.8 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.8</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<!-- SpringCloud 版本 2020.0.5 -->
<properties>
    <java.version>11</java.version>
    <spring-cloud.version>2020.0.5</spring-cloud.version>
</properties>
  • 导入nacos需要的包

    由于导入了SpringCloud Alibaba,这里可以不用写版本号

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  • 启动类中添加注解
@SpringBootApplication
@EnableDiscoveryClient	// 开启服务注册与发现
public class DemoApplication {
    public static void main(String[] args) {
    }
}
  • yml 配置
spring:
  application:
    name: demo
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:9088
  • 查看注册结果

    访问本地nacos地址http://localhost:9088/nacos

    默认用户:nacos

    默认密码:nacos

SpringCloud集成配置中心

  • 添加依赖
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  • 配置文件
# 在与application.yml同级目录中创建bootstrap.yml文件
# 在bootstrap.yml文件中编写如下配置
spring:
  application:
    name: demo
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:9088
        file-extension: yml

注意

  • springboot 2.4 以上取消了bootstrap.yml的优先级

  • 若想使用bootstrap.yml配置,需添加如下依赖

    <dependency>
    	<groupId>org.springframework.cloud</groupId>
    	<artifactId>spring-cloud-starter-bootstrap</artifactId>
    	<version>3.1.0</version>
    </dependency>
    

Nacos配置中心

  • 创建一个配置(注意Data Id 为完整文件名 xxx.yml)

    文件名与bootstrap.ymlname相同,文件格式与file-extension定义相同
    SpringCloud集成Nacos

  • 编写配置内容
    SpringCloud集成Nacos

  • 编辑完成后点击页面右下角发布按钮

Java中获取配置

  • 创建一个测试接收配置的类
@Getter
@Setter
@RefreshScope // 实时刷新
@Component
public class TestConfig {
    @Value("${demo.test}")
    private String test;
}
上一篇:SpringCloud - 整合 Spirng Cloud Alibaba


下一篇:SpringCloud项目的搭建