SpringCloudAlibaba——Nacos注册中心、配置中心的使用

一、注册中心介绍

1.1 什么是注册中心

注册中心在微服务项目中扮演着非常重要的角色,是微服务架构中的纽带,类似于通讯录,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。

1.2 为什么要使用注册中心

注册中心解决了服务发现的问题。在没有注册中心时候,服务间调用需要知道被调方的地址或者代理地址。当服务更换部署地址,就不得不修改调用当中指定的地址或者修改代理配置。而有了注册中心之后,每个服务在调用别人的时候只需要知道服务名称就好,继续地址都会通过注册中心同步过来。

Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
在这里插入图片描述

二、环境准备

Nacos Githup : https://github.com/alibaba/nacos

2.1 拉取项目

git clone https://github.com/alibaba/nacos.git

2.2 配置ry_config数据库

conf目录下的application.properties文件配置数据库信息:
在这里插入图片描述

运行nacos数据库sql:

在这里插入图片描述

2.3 打包

#  进入Nacos 目录下
cd nacos/
#  进行打包
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U 
# 打包后的文件在distribution/target/目录下
ls -al distribution/target/
# 进入到nacos/distribution/target/nacos-server-1.4.2/nacos/bin目录下
# 启动
./startup.sh  -m standalone
# 停止
./shutdown.sh

在这里插入图片描述
在这里插入图片描述
进入到nacos/distribution/target/nacos-server-1.4.2/nacos/bin目录下:
在这里插入图片描述
编辑启动脚本为单机模式。export MODE="standalone"
在这里插入图片描述

/bin目录下有启动和停止脚本。
执行 ./startup.sh 或者 ./startup.sh -m standalone
在浏览器中输入(http://localhost:8848/nacos)就可以访问了,默认的用户名和密码都是nacos
在这里插入图片描述
登陆上之后可以看到若依的各个微服务的配置文件已经自动显示出来了。
在这里插入图片描述

三、服务注册

新建一个Test服务:
在这里插入图片描述

3.1 pom依赖

在pom文件中添加依赖

<!-- springcloud alibaba nacos discovery -->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

<!-- SpringBoot Web -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

3.2 添加bootstrap.yml配置

# Spring
spring:
  application:
    # 应用名称
    name: ruoyi-test
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

Application启动类加入注解@SpringBootApplication

@SpringBootApplication
public class RuoYiTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(RuoYiTestApplication.class, args);
        System.out.println("(♥◠‿◠)ノ゙  Test启动成功   ლ(´ڡ`ლ)゙  \n" +
                " .-------.       ____     __        \n" +
                " |  _ _   \\      \\   \\   /  /    \n" +
                " | ( ' )  |       \\  _. /  '       \n" +
                " |(_ o _) /        _( )_ .'         \n" +
                " | (_,_).' __  ___(_ o _)'          \n" +
                " |  |\\ \\  |  ||   |(_,_)'         \n" +
                " |  | \\ `'   /|   `-'  /           \n" +
                " |  |  \\    /  \\      /           \n" +
                " ''-'   `'-'    `-..-'              ");
    }
}

3.3 测试验证 示例

@RequestMapping("/test")
@RestController
public class DemoController {
    @Autowired
    private RestTemplate restTemplate;

    // 新增restTemplate对象注入方法,注意,此处LoadBalanced注解一定要加上,否则无法远程调用
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @GetMapping("/user")
    public String get() {
        return restTemplate.getForObject("http://ruoyi-system/user/info/admin", String.class);
    }
}

浏览器地址访问:http://localhost:8080/test/user
服务调用成功:(通过test服务调用system服务)
在这里插入图片描述

四、配置中心介绍

在微服务架构中,当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着冗余,如下图:
在这里插入图片描述
总得来说,配置中心就是一种统一管理各种应用配置的基础服务组件。

4.1 为什么要使用配置中心?

配置中心将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去管理配置。

4.2 Nacos 配置中心

Nacos是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
在这里插入图片描述
配置中心的服务流程如下:

1、用户在配置中心更新配置信息。
2、服务A和服务B及时得到配置更新通知,从配置中心获取配置。

4.3添加pom依赖

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

4.2 Nacos配置

(注意:)
再给给配置中心默认添加一个数据集 (Data Id)的时候:

在这里插入图片描述

注意此处的Data ID
数据集(Data Id) 的配置完整格式如下:${spring.cloud.nacos.config.prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension},通俗一点就是: 前缀-环境.扩展名
注意:如果spring.cloud.nacos.config.prefix没有配置,则使用默认的spring.application.name
在这里插入图片描述

在这里插入图片描述

4.4 动态获得配置文件的值


@RestController
@RequestMapping("/test")
public class TestController {
     //@Value 将外部的配置项值动态注入到该 Bean 中。通过冒号语法,可以给配置项指定一个默认值。
    @Value("${ruoyi.name:default}")
    private String name;

    @Value("${ruoyi.version:default}")
    private String version;

    @GetMapping("/info")
    public String getInfo() {
        return name + version ;
    }
}

访问http://localhost:8080/test/info,返回正确数据表示测试通过。
在这里插入图片描述

动态刷新

通常会在Controller里边用@Value取出使用,但是你要是想改变他,就要重新改代码,打包,部署,十分麻烦,我们需要让配置文件的值变得动起来,Nacos也采用了Spring Cloud原生注解@RefreshScope实现配置自动更新。
在这里插入图片描述

修改前:
在这里插入图片描述
修改Nacos配置文件:
在这里插入图片描述
在这里插入图片描述

成功动态获取到修改后的值。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: Spring Cloud Alibaba 是一个基于 Spring Cloud 的开源框架,用于构建分布式应用程序。Nacos 是一个开源的服务发现、配置管理和服务管理平台,可以帮助开发人员更好地管理和维护分布式应用程序。 要搭建 Spring Cloud AlibabaNacos,需要按照以下步骤进行操作: 1. 下载和安装 JDK 和 Maven。 2. 创建一个 Spring Boot 项目,并添加 Spring Cloud AlibabaNacos 的依赖。 3. 在 Nacos 中创建一个命名空间和一个服务。 4. 在 Spring Boot 项目中配置 Nacos 的地址和服务信息。 5. 编写代码并运行应用程序。 具体的步骤可以参考 Spring Cloud AlibabaNacos 的官方文档,或者参考其他相关的教程和资料。 ### 回答2: SpringCloudAlibaba是一款非常流行的分布式系统框架,它提供了一个非常方便的方式来搭建高可扩展的分布式应用程序。当使用SpringCloudAlibaba构建分布式应用程序时,我们常常需要使用Nacos作为服务注册中心配置中心。本文将介绍如何使用SpringCloudAlibaba来搭建Nacos。 首先,我们需要在本地安装Nacos。 步骤如下: 1. 下载Nacos:https://github.com/alibaba/nacos/releases 2. 解压下载的文件,进入bin目录 3. 运行startup.cmd(如果是在Linux系统下,运行startup.sh) 当我们成功启动Nacos后,我们需要在我们的应用程序中添加Nacos的依赖项。可以在pom.xml文件中添加如下代码: ``` <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> ``` 这个依赖项将会自动添加Spring Cloud Nacos Discovery的类和配置。 接下来,我们需要为我们的应用程序添加Nacos配置。可以在application.properties或者application.yml文件中添加如下代码: ``` spring.cloud.nacos.discovery.server-addr=localhost:8848 ``` 当我们的应用程序启动时,它将会自动注册到Nacos。 最后,我们需要在我们的应用程序中使用Nacos作为配置中心。可以在配置文件中添加如下配置: ``` spring.cloud.nacos.config.server-addr=localhost:8848 ``` 这个配置项将会告诉我们的应用程序从Nacos中加载配置项。 当我们成功完成这些步骤后,我们的应用程序就已经成功地搭建了Nacos。现在我们可以使用Nacos作为服务注册中心配置中心来管理我们的应用程序了。 ### 回答3: SpringCloudAlibaba是阿里巴巴团队推出的微服务框架,其中的nacos作为注册中心配置中心以及服务发现组件,是使用SpringCloudAlibaba搭建微服务架构的重要组成部分。 下面是搭建nacos的详细步骤: 1.安装Java环境和Maven环境。在安装之前需要确保已经正确配置好Java和Maven的环境变量。 2.下载nacos的安装包。从nacos的官网中下载最新版的nacos安装包,解压缩到任意目录下。 3.启动nacos server。通过命令行进入nacos安装包所在的bin目录下,使用以下命令启动nacos: Linux/Unix/Mac: sh startup.sh –m standalone Windows: cmd startup.cmd 启动成功后通过访问http://localhost:8848/nacos/访问nacos的管理控制台,管理员账号和密码默认为nacos/nacos。 4.配置nacos客户端。在pom.xml文件中添加nacos的依赖: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId> spring-cloud-starter-alibaba-nacos-discovery </artifactId> </dependency> 在配置文件application.yml中配置nacos信息: spring: cloud: nacos: discovery: server-addr: localhost:8848 # nacos服务的地址 application: name: service-provider # 微服务的名称 5.发布和发现微服务。使用@EnableDiscoveryClient注解启用服务发现功能,在微服务启动时自动注册到nacos中,nacos管理控制台会显示注册的微服务信息。其他微服务可以通过调用nacos的API或者使用Ribbon等工具进行服务发现。 至此,使用SpringCloudAlibaba搭建nacos的过程就结束了。nacos提供的服务注册、配置管理和服务发现功能,为微服务的构建和部署提供了更方便、更高效、更可靠的方案。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu_Shihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值