【Spring Cloud Alibaba】Nacos的安装、配置与使用

Nacos安装

官网:https://nacos.io/zh-cn/docs/quick-start.html

下载压缩包,解压nacos压缩包,并进入到bin目录下启动

sh startup.sh -m standalone
tail -f /root/nacos/nacos/logs/start.out

需要JDK1.8的环境

浏览器访问,默认用户名和密码为nacos

http://192.168.229.129:8848/nacos/

Java使用

1、创建一个父工程,导入依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
    <relativePath/>
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Greenwich.SR6</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.1.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

2、创建子工程Provider

添加依赖

<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>

启动类添加注解@EnableDiscoveryClient

编写配置文件

spring:
  application:
    name: provider
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.229.129:8848

3、创建子工程consumer

导入依赖

<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>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

编写配置文件

spring:
  application:
    name: Consumer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.229.129
server:
  port: 8081

启动类

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

在Provider中创建一个Controller,返回一个字符串

使用openfeign调用Provider项目中的Controller接口,输出Provider接口中输出的内容

启动Consumer项目,可以看到此服务注册到了nacos中,再调用Consumer服务中的接口,进而调用Provider中的接口吗,如果输出成功,则表示使用nacos注册两个服务成功,两个服务之间可以进行通信了

Nacos配置中心

快速入门

导入依赖

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

创建配置文件

在这里插入图片描述

修改配置文件

spring:
  application:
    name: consumer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.229.129:8848
      config:
        server-addr: 192.168.229.129:8848
        file-extension: yml
server:
  port: 8081

修改接口,为了看到加载了在nacos中的配置,输出配置中的version

@RestController
public class TestController {
    @Resource
    private ProviderClient providerClient;

    @Value("${version}")
    private String version;

    @RequestMapping("/consumer/test")
    public String test() {
        return providerClient.test() + "  " + version;
    }
}

启动服务,访问接口http://localhost:8081/consumer/test,结果如下

Hello SpringCloud Alibaba v1.0.0

动态刷新

实现修改nacos中的配置文件,发布后就能使其生效

在Controller类上添加一个注解即可@RefreshScope

此后,每次修改nacos中的配置文件,都可即使生效

例如:修改version为v2.0.0,然后发布,再访问接口,可以看到,内容的确变为v2.0.0了

Hello SpringCloud Alibaba v2.0.0

指定配置文件

指定命名空间namespace和分组信息group

spring:
  application:
    name: consumer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.229.129:8848
      config:
        server-addr: 192.168.229.129:8848
        file-extension: yml
        namespace: local # 默认为public
        group: ROBOt_GROUP # 默认为DEFAULT_GROUP
server:
  port: 8081

根据 s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name{spring.profiles.active}.${spring.cloud.nacos.config.file-extension}去找指定的配置文件名称

然后在图形界面创建一个命名空间namespace,在服务列表中切换为此命名空间,再在此namespace下创建配置文件:consumer-local.yml

持久化机制

先关闭nacos服务:sh shutdown.sh

进入到nacos中的conf目录下,修改application.properties文件

  • 将这几个注释打开,配置好自己的数据信息
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql

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

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

在config目录下还可以看到sql文件:nacos-mysql.sql,将这个sql中的表数据,导入到上面指定的数据库中(需要创建这个数据库)

配置好后再打开nacos服务:sh startup.sh -m standalone

此时再次创建配置文件后,文件信息都将被保存到数据库中,下次重启服务后,可以直接从数据库中加载,所以持久化了配置文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值