nacos快速上手

SpringCloud

SpringCloudAlibaba工程构建

父工程中的导入依赖进行统一版本管理,版本对应参考网址:

父工程导入依赖:

<dependencyManagement>
        <dependencies>
            <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2022.0.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!--  -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2022.0.0.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>3.1.2</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>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
</dependencies>

注意:子工程中的SpringBoot配置文件必须为application.xxxx,否则无法正确加载配置文件


启动nacos服务

注意:

在2.2.0.1和2.2.1版本时,必须执行此变更,否则无法启动;其他版本为建议设置。

修改conf目录下的application.properties文件。

设置其中的nacos.core.auth.plugin.nacos.token.secret.key值,详情可查看鉴权-自定义密钥.

注意,文档中的默认值SecretKey012345678901234567890123456789012345678901234567890123456789和VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=为公开默认值,可用于临时测试,实际使用时请务必更换为自定义的其他有效值。

可以修改start.cmd中的启动模式为单例模式或者是集群模式(standalone/cluster);

服务启动后,访问默认网址http://localhost:8848/nacos/index.html进行服务管理

服务调用

使用Ribbon的负载均衡来调用服务
在配置类中添加RestTemplate来获取服务
注意:在springCloud2022.0.0.1版本中使用@LoadBalanced注解,需要先在pom中添加spring-cloud-starter-loadbalancer的依赖才会产生作用

@LoadBalanced
@Bean
public RestTemplate restTemplate(){
    return new RestTemplate();
}

在要使用的类中自动装配restTemplate,使用value获取配置文件中的微服务访问的地址

@Autowired
private RestTemplate restTemplate;

@Value("${url-config-name}")
private String url;

@GetMapping
public String getName(){
    return restTemplate.getForEntity(url+"param",String.class)
}

nacos配置中心

导入依赖
注意:因为版本原因,需要导入bootstrap依赖才能成功启动

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

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

在nacos中添加一个配置文件,设置命名空间(默认为public),组别

配置文件通过命名空间和组别实现多类型和需求配置文件的管理

在配置文件中填写要读取的配置文件的信息,如:

server:
  port: 10000
spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        # 文件扩展名
        file-extension: yaml
        # 命名空间
        namespace: b4e69e6f-aa29-408f-858c-c9bac446eb83

        # 共享配置文件,可以有多个
        ## 默认为DEFAULT_GROUP
        shared-configs:
          - data-id: nacos-config-dev.yaml
            # 是否自动刷新,默认为否
            refresh: true
            group: ORDER_GROUP
          - data-id: nacos-config-dev.yaml
            refresh: true
  profiles:
    active: dev

新建一个controller来测试,直接使用@Value注解来读取配置文件信息
使用@RefreshScope注解来实现自动刷新

@RestController
@RefreshScope
public class TestController {

    @Value("${services.url}")
    private String str;

    @Value("${services.url1}")
    private String str2;

    @GetMapping("/")
    public String getStr() {
        return str + "----" + str2;
    }
}
数据持久化

nacos支持使用mysql实现数据持久化

默认情况下,文件保存在nacos-server/data/derby-data/中

要使用自定义数据库来保存数据,需要在/conf/application.properties配置文件中修改数据库配置项

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
spring.datasource.platform=mysql
spring.sql.init.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=username
db.password.0=password

然后使用mysql-schema.sql脚本自动新建数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值