SpringCloud-Alibaba-Nacos教程

SpringCloud-Alibaba-Nacos教程

下载地址

https://github.com/alibaba/nacos/releases/tag/2.2.3

直接进入bin包 运行cmd命令

startup.cmd -m standalone

运行成功后

进入nacos可视化页面

账号密码默认都是nacos

http://localhost:8848/nacos

微服务入驻Nacos服务注册中心

1.Maven依赖
xml 复制代码
     
        <!--nacos-discovery nacos 服务发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--loadbalancer 负载均衡-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
2.application.yaml配置
yaml 复制代码
# nacos配置
spring:
  application:
    name: nacos-config-client #以此名入驻服务注册中心
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
3.启动类
java 复制代码
@SpringBootApplication
@EnableDiscoveryClient
public class Main3377 {
    public static void main(String[] args) {

        SpringApplication.run(Main3377.class,args);
    }
}

此时启动就会入驻到nacos服务注册中心

Nacos分布式服务配置中心

1.maven依赖
xml 复制代码
  <!--bootstrap bootstrap.yaml-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <!--nacos-config nacos全局配置-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
                <!--nacos-discovery nacos 服务发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
2.bootstrap.yaml

为什么要加bootstrap.yaml 因为它的优先级是系统级的,并且微服务想要注册服务,肯定要先让服务注册中心配置好

yaml 复制代码
# nacos配置
spring:
  application:
    name: nacos-config-client #以此名入驻服务注册中心
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
      config:
        server-addr: localhost:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置
        #group: PROD_GROUP              #如果设置了groupid    
        #namespace: Prod_Namespace    #如果设置了namespace

# nacos端配置文件DataId的命名规则是:
#    nacos-config-client                  dev                      yaml      ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# 本案例的DataID是:nacos-config-client-dev.yaml
3.application.yaml
yaml 复制代码
server:
  port: 3377

spring:
  profiles:
    active: dev # 表示开发环境
      #active: prod # 表示生产环境
    #active: test # 表示测试环境
4.启动类还是那一套
5.controller类

需要添加@RefreshScope 这样 你在服务配置中心那改了就会实时获取到修改过的配置

java 复制代码
@RestController
@RefreshScope //在控制器类加入@RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能。
public class NacosConfigClientController
{
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }
}
6.nocas新建配置
7.测试结果

GET http://localhost:3377/config/info

HTTP/1.1 200

Content-Type: text/plain;charset=UTF-8

Content-Length: 33

Date: Sat, 09 Mar 2024 11:26:09 GMT

Keep-Alive: timeout=60

Connection: keep-alive

nihao nihao hello hello version 1

Response code: 200; Time: 110ms (110 ms); Content length: 33 bytes (33 B)

相关推荐
摇滚侠2 小时前
Spring Boot 3零基础教程,IOC容器中组件的注册,笔记08
spring boot·笔记·后端
程序员小凯4 小时前
Spring Boot测试框架详解
java·spring boot·后端
你的人类朋友5 小时前
什么是断言?
前端·后端·安全
程序员小凯6 小时前
Spring Boot缓存机制详解
spring boot·后端·缓存
i学长的猫6 小时前
Ruby on Rails 从0 开始入门到进阶到高级 - 10分钟速通版
后端·ruby on rails·ruby
用户21411832636027 小时前
别再为 Claude 付费!Codex + 免费模型 + cc-switch,多场景 AI 编程全搞定
后端
hello 早上好7 小时前
深入 Spring 依赖注入底层原理
数据库·sql·spring
茯苓gao7 小时前
Django网站开发记录(一)配置Mniconda,Python虚拟环境,配置Django
后端·python·django
Cherry Zack7 小时前
Django视图进阶:快捷函数、装饰器与请求响应
后端·python·django
爱读源码的大都督7 小时前
为什么有了HTTP,还需要gPRC?
java·后端·架构