(二)Spring Cloud Alibaba 2023.x:轻松集成 Nacos 注册与配置中心

1,095 阅读2分钟

前言

本篇使用alibaba nacos它可以作为微服务的注册中心和配置中心以及配置文件动态刷新,所以本篇就一起实现了。它对应了spring cloud中的注册中心 Spring Cloud Netflix Eureka 以及配置中心spring cloud Config(动态刷新还要配合使用 Spring Cloud Bus 组件) 。nacos以一抵三,可以想象他的强大之处了。

准备

  • jdk17+
  • maven3.9.4+
  • idea2023
  • spring cloud: 2023.0.1.0
  • spring cloud alibaba: 2023.0.1
  • nacos服务器版本:2.3.0

源码获取: GitHub - RemainderTime/spring-cloud-alibaba-base-demo: 基于spring cloud alibaba生态快速构建微服务脚手架

博主使用的是docker直接构建安装的nacos容器

本地安装:

nacos服务包已上传百度云可直接下载使用

百度云链接: pan.baidu.com/s/1Ue0NPSzx… 提取码: 92h6

相关配置可以参看nacos官网教程,根据不同的平台配置

直达:Nacos支持三种部署模式

配置完成访问默认nacos的控制面板,就算成功了

创建命名空间

命名空间也可以不创建,就使用默认的,为了不同项目配置隔离建议创建命名空间

项目

创建生成/消费者微服务:

父级pom.xml引入nacos依赖

<!-- 配置中心 nacos-->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--注册中心 nacos-->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

子模块所有启动类上加上注解 @EnableDiscoveryClient 作用是启用服务注册与发现功能

配置application.yml文件

配置注册中心地址和配置中心

spring:
  application:
    name: http-cloud-producer
  cloud:
    nacos:
      config: #配置中心
        server-addr: 127.0.0.1:8848
        prefix: http-cloud-producer
        username: nacos
        password:
        namespace: 
      discovery: #注册中心
        server-addr: 127.0.0.1:8848
        username: nacos
        password:
        namespace
  config:
    import: #指定加载配置的方式以及文件
      - nacos:http-cloud-producer.yaml

Tips!

namespace:这个就是上面创建的命名空间ID

config.import: 这个是在nacos配置中心手动创建的配置文件。(我记得老版本是在配置中心的config中设置)

使用了配置中心,大多数配置可以防止远程配置中心管理,本地配置只需要留一个配置中心confi配置地址就行

启动服务

启动本地服务后,我们会发现nacos注册中心已经成功注册了消费者和生产者服务: