阿里的Nacos作为注册中心、配置中心整合Spring Cloud

#系统配置环境#

首先说明我的系统配置环境:

  • 电脑系统:windows10
  • JDK版本:1.8
  • Nacos服务版本:1.2.1
  • SpringBoot版本:2.2.6.RELEASE
  • SpringCloud版本:Hoxton.SR3

一、Nacos的核心功能:

  • Nacos核心提供两个功能:服务注册与发现,动态配置管理。

二、Win10下Nacos的安装

2.1 下载Nacos

首先,我们得去下载nacos:https://github.com/alibaba/nacos/releases,
或者直接下载和我一样的nacos 1.2.1版本:https://github.com/alibaba/nacos/releases/download/1.2.1/nacos-server-1.2.1.zip
windows10系统的话,选择zip版本下载解压之后就好了。

2.2 启动Nacos

下载解压好之后,我们就可以启动nacos了
在解压出来的文件夹下的路径:xxx\nacos-server-1.2.1\nacos\bin,在bin的文件夹下,会有一个startup.cmdshutdown.cmd,启动nacos双击startup.cmd,会出来一个cmd终端:
nocaos
上边个Port:8848,这便是nacos服务启动时所用的端口,这个是需要我们配置的地方。

2.3 访问Nacos

启动Nacos之后,我们可以访问Nacos查看服务:

  • 访问地址:http://127.0.0.1:8848/nacos/
  • 默认用户:nacos
  • 默认密码:nacos
    在这里插入图片描述

三、Nacos作为注册中心

3.1 配置注册中心依赖包:

在SpringBoot项目下的pom.xml配置依赖包

<!--服务注册发现-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
3.2 注解服务发现

在SpringBoot启动程序上使用可发现注解

@EnableDiscoveryClient

例如:

@EnableDiscoveryClient
@SpringBootApplication
public class GulimallCouponApplication {
    public static void main(String[] args) {
        SpringApplication.run(GulimallCouponApplication.class, args);
    }
}
3.3 Nacos的相关配置

在项目下的yml文件中配置nacos相关服务

spring:
  cloud:
    #注册中心
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: gulimall-coupon
3.4 启动项目

配置完之后,启动GulimallCouponApplication,然后去Nacos服务地址查看:http://127.0.0.1:8848/nacos/;
在这里插入图片描述
启动之后,便可以在nacos中看见gulimall-coupon在注册中心的服务列表了。

四、Nacos作为配置中心

4.1 配置 配置中心依赖包

在SpringBoot项目下的pom.xml配置依赖包

<!--配置中心来做配置管理-->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
4.2 创建bootstrap.properties配置文件

在项目的resource目录下,创建一个bootstrap.properties配置文件
配置内容:

spring.application.name=gulimall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

注意:

  1. spring.application.name与上面的配置的一致
  2. spring.cloud.nacos.config.server-addr是nacos的服务地址
4.3 添加数据集

需要给配置中心默认添加一个叫做数据集(Data Id):gulimall-coupon.properties。

  • 默认规则:应用名.properties

在nacos服务中添加Data Id:

  • 服务地址:http://127.0.0.1:8848/nacos/在这里插入图片描述
    点击右上角的:**+**添加Data Id:gulimall-coupon.properties
    例如:
    gulimall-coupon.properties

配置内容为:

coupon.user.name=zhangsan2id
coupon.user.age=18010

在给应用名.properties添加任何配置之后,项目就可以去配置中心动态获取项目的相关配置了。

4.4 添加动态获取并刷新配置

在项目下的controller的类下使用注解:

// 获取配置数据从配置中心动态获取
@RefreshScope

例:

// 获取配置数据从配置中心动态获取
@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;

    private static String name;
    @Value("${coupon.user.name}")
    private void setName(String name){
        this.name = name;
    }

    private static Integer age;
    @Value("${coupon.user.age}")
    private void setAge(Integer age){
        this.age = age;
    }

    @RequestMapping("/test2")
    private String test2(){
        Map<String, Object> map = new HashMap<>();
        map.put("name",name);
        map.put("age",age);
        return map.toString();
    }

访问:http://localhost:7000/coupon/coupon/test2,便可以获取到配置中心gulimall-coupon.properties配置中的配置内容:
coupon/test2
通过测试,可以看见,我们在配置中心的配置项有效,
动态获取示例:
修改配置中心gulimall-coupon.properties配置项的值:
在这里插入图片描述
配置内容为:

coupon.user.name=coupon-prop
coupon.user.age=0000

再次访问:http://localhost:7000/coupon/coupon/test2
在这里插入图片描述
可以发现,配置的值也动态改变了。

以上、Nacos的注册中心和配置中心简单整合SpringCloud完成。

猜你喜欢

转载自blog.csdn.net/aspire_cj/article/details/105613656