集成SpringCloudAlibaba

本文详细介绍了如何在SpringCloud Alibaba中集成Nacos作为注册中心和配置中心,包括引入依赖、配置NacosServer地址、启动服务与配置、动态刷新等功能,以及如何通过Nacos实现配置隔离和微服务配置管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集成SpringCloudAlibaba

一.Nacos注册中心

Nacos官方文档

1.引入SpringCloudAlibaba依赖管理

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.1.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

2.引入nacos注册中心

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

3.在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

4.使用 @EnableDiscoveryClient 注解开启服务注册与发现功能

@SpringBootApplication
 @EnableDiscoveryClient
 public class ProviderApplication {

 	public static void main(String[] args) {
 		SpringApplication.run(ProviderApplication.class, args);
 	}

 	@RestController
 	class EchoController {
 		@GetMapping(value = "/echo/{string}")
 		public String echo(@PathVariable String string) {
 				return string;
 		}
 	}
 }

5.启动 Nacos Server

  1. 首先需要获取 Nacos Server,支持直接下载和源码构建两种方式。

    1. 直接下载:Nacos Server 下载页
    2. 源码构建:进入 Nacos Github 项目页面,将代码 git clone 到本地自行编译打包,参考此文档。推荐使用源码构建方式以获取最新版本
  2. 启动 Server,进入解压后文件夹或编译打包好的文件夹,找到如下相对文件夹 nacos/bin,并对照操作系统实际情况之下如下命令。

    1. Linux/Unix/Mac 操作系统,执行命令 sh startup.sh -m standalone
    2. Windows 操作系统,执行命令 cmd startup.cmd

6.应用启动

  1. 增加配置,在 nacos-discovery-provider-example 项目的 /src/main/resources/application.properties 中添加基本配置信息
 spring.application.name=service-provider
 server.port=18082
  1. 启动应用,支持 IDE 直接启动和编译打包后启动。
    1. IDE直接启动:找到 nacos-discovery-provider-example 项目的主类 ProviderApplication,执行 main 方法启动应用。
    2. 打包编译后启动:在 nacos-discovery-provider-example 项目中执行 mvn clean package 将工程编译打包,然后执行 java -jar nacos-discovery-provider-example.jar启动应用。

二.Nacos配置中心

1.应用配置

  1. 修改 pom.xml 文件,引入 Nacos Config Starter。
<!--nacos注册/发现-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  1. 在应用的 /src/main/resources/bootstrap.properties 配置文件中配置 Nacos Config 元数据
#Springboot规定bootstrap.properties优先于application.properties加载
spring.application.name=nacos-config-example
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
  1. 完成上述两步后,应用会从 Nacos Config 中获取相应的配置,并添加在 Spring Environment 的 PropertySources 中。这里我们使用 @Value 注解来将对应的配置注入到 SampleController 的 userName 和 age 字段,并添加 @RefreshScope 打开动态刷新功能
@RefreshScope
class SampleController {

 @Value("${user.name}")
 String userName;

 @Value("${user.age}")
 int age;
}

2.启动 Nacos Server 并添加配置

  1. 首先需要获取 Nacos Server,支持直接下载和源码构建两种方式。推荐使用最新版本 Nacos Server
1. 直接下载:[Nacos Server 下载页](https://github.com/alibaba/nacos/releases)
2.源码构建:进入 Nacos Github 项目页面,将代码 git clone 到本地自行编译打包,[参考此文档](https://nacos.io/zh-cn/docs/quick-start.html)。
  1. 启动 Server,进入下载到本地并解压完成后的文件夹(使用源码构建的方式则进入编译打包好的文件夹),再进去其相对文件夹 nacos/bin,并对照操作系统实际情况执行如下命令。详情参考此文档
1. Linux/Unix/Mac 操作系统,执行命令 sh startup.sh -m standalone
2. Windows 操作系统,执行命令 cmd startup.cmd
  1. 在命令行执行如下命令,向 Nacos Server 中添加一条配置
 curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos-config-example.properties&group=DEFAULT_GROUP&content=user.id=1%0Auser.name=james%0Auser.age=17"

注:你也可以使用其他方式添加,遵循 HTTP API 规范即可,若您使用的 Nacos 版本自带控制台,建议直接使用控制台进行配置
添加的配置的详情如下

dataId 为 nacos-config-example.properties
 group 为 DEFAULT_GROUP
 
 内容如下
 
 	user.id=1
 	user.name=james
 	user.age=17	

3.启动应用

  1. 增加配置,在应用的 /src/main/resources/application.properties 中添加基本配置信息
server.port=18084
management.endpoints.web.exposure.include=*
  1. 启动应用,支持 IDE 直接启动和编译打包后启动
    1. IDE直接启动:找到主类 Application,执行 main 方法启动应用。
    2. 包编译后启动:首先执行 mvn clean package 将工程编译打包,然后执行 java -jar nacos-config-example.jar启动应用。

验证

在浏览器地址栏输入 http://127.0.0.1:18084/user,并点击调转,可以看到成功从 Nacos Config Server 中获取了数据。

4.细节

1. 命名空间:配置隔离
    默认: public(保留空间);默认新增的所有配置都在public空间
   -1.  开发,测试,生产   利用命名空间来做环境隔离
        注意: 在bootStrap.preoperties中需要指定使用哪个命名空间的配置
        spring.cloud.nacos.config.namespace=命名空间ID
   -2.每一个微服务之间互相配置隔离,每一个微服务都创建自己的命名空间,只加载自己命名空间下的所有配置

2. 配置集:所有的配置的集合

3. 配置集ID: 类似于配置文件名。
    -   DataId: 文件名
4. 配置分组:
    默认所有的配置集都属于:DEFAULT_GROUP;
    -   1111,618,1212 
    -   spring.cloud.nacos.config.group=组名
  

每个微服务有自己的命名空间,使用配置分组区分环境,dev test, prod

5.同时加载多个配置集

1 .微服务任何配置信息,任何配置文件都可以放在配置中心中

spring.application.name=gulimall-coupon

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=9f65b21b-4569-4ff0-8752-2b3c3de8118a
#spring.cloud.nacos.config.group=dev

spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true
  1. 只需要在bootstrap.properties说明加载配置中心中那些配置文件即可

  2. @Value,@ConfigurationProoperties。。。以前springboot任何方法从配置文件中获取值,都能使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值