码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SpringCloud无介绍快使用,nacos配置中心的基本使用(十九)


    SpringCloud无介绍快使用,nacos配置中心的基本使用(十九)

    • 问题背景
    • nacos配置中心
    • nacos命名空间
    • Lyric: 我耍你耍的就像土耳其的冰淇

    问题背景

    从零开始学springcloud微服务项目
    注意事项:

    • 约定 > 配置 > 编码
    • IDEA版本2021.1
    • 这个项目,我分了很多篇章,每篇文章一个操作步骤,目的是显得更简单明了
    • controller调service,service调dao
    • 项目源码以及sentinel安装包

    nacos配置中心

    1 新建nacos配置中心客户端
    image.png
    2 选择jdk1.8

    3 输入服务名:cloudalibaba-config-nacos-client3377

    4 引入pom依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>springcloud2022</artifactId>
            <groupId>com.yg</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>cloudalibaba-config-nacos-client3377</artifactId>
    
        <dependencies>
            <!--nacos-config-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
            <!--nacos-discovery-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
            <!--web + actuator-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <!--一般基础配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
    </project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    5 新增application.yml文件

    spring:
      profiles:
        active: dev # 表示开发环境
    
    • 1
    • 2
    • 3

    6 新增bootstrap.yml文件

    # nacos配置
    server:
      port: 3377
    
    spring:
      application:
        name: nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #配置Nacos地址 #Nacos服务注册中心地址
          config:
            server-addr: localhost:8848 #配置Nacos地址 #Nacos作为配置中心地址
            file-extension: yml #指定yml格式的配置
    
    
    # ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
    # nacos-config-client-dev.yml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    7 添加启动类

    package com.yg.springcloud;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    
    /**
     * @Author suolong
     * @Date 2022/6/20 20:32
     * @Version 2.0
     */
    @EnableDiscoveryClient
    @SpringBootApplication
    public class NacosConfigClientMain3377 {
    
        public static void main(String[] args) {
            SpringApplication.run(NacosConfigClientMain3377.class, args);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    8 添加controller

    package com.yg.springcloud.controller;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.cloud.context.config.annotation.RefreshScope;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @Author suolong
     * @Date 2022/6/20 21:06
     * @Version 2.0
     */
    @RestController
    @RefreshScope //在控制器类加入@RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能
    public class ConfigClientController {
    
        @Value("${config.info}")
        private String configInfo;
    
        @GetMapping("/config/info")
        public String getConfigInfo() {
            return configInfo;
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    9 启动服务,在nacos网页上添加微服务配置

    10 通过公式取名:

    # 服务名 + '-' + 环境dev或者prod + '.' + yml(文件格式)
    ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
    
    • 1
    • 2
    nacos-config-client-dev.yml
    
    • 1

    11 在nacos上编辑nacos-config-client-dev.yml,使用postman测试:http://localhost:3377/config/info

    nacos命名空间

    1 Namespace+Group+Data ID

    • 最外层的namespace是可以用于区分部署环境的,Group和DataID逻辑上区分两个目标对象
    • 默认情况:Namespace=public,Group=DEFAULT_GROUP, 默认Cluster是DEFAULT

    2 Nacos默认的命名空间是public,Namespace主要用来实现隔离

    • 比方说我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个Namespace,不同的Namespace之间是隔离的。
    • Group默认是DEFAULT_GROUP,Group可以把不同的微服务划分到同一个分组里面去
    • Service就是微服务;一个Service可以包含多个Cluster(集群),Nacos默认Cluster是DEFAULT,Cluster是对指定微服务的一个虚拟划分。

    比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的Service微服务起一个集群名称(HZ),给广州机房的Service微服务起一个集群名称(GZ),还可以尽量让同一个机房的微服务互相调用,以提升性能。

    • 最后是Instance,就是微服务的实例。

    SpringCloud无介绍快使用,Seata处理分布式事务(二十五)
    SpringCloud无介绍快使用,sentinel服务熔断功能(二十四)
    SpringCloud无介绍快使用,sentinel注解@SentinelResource的基本使用(二十三)
    SpringCloud无介绍快使用,sentinel热点key限流与系统规则的基本使用(二十二)
    SpringCloud无介绍快使用,sentinel熔断降级和限流的基本使用(二十一)
    SpringCloud无介绍快使用,Nacos集群和Nginx代理(二十)
    SpringCloud无介绍快使用,nacos配置中心的基本使用(十九)
    SpringCloud无介绍快使用,nacos注册中心的基本使用(十八)
    SpringCloud无介绍快使用,gateway通过微服务名实现动态路由(十七)
    SpringCloud无介绍快使用,gateway的基本使用(十六)
    SpringCloud无介绍快使用,Ribbon负载均衡工具与OpenFeign的使用(十五)
    SpringCloud无介绍快使用,使用Zookeeper替换Eureka服务注册与发现(十四)
    SpringCloud无介绍快使用,服务发现Discovery和Eureka自我保护(十三)
    SpringCloud无介绍快使用,集群cloud-provider-payment8002搭建(十二)
    SpringCloud无介绍快使用,集群Eureka服务注册中心cloud-eureka-server7002搭建(十一)
    SpringCloud无介绍快使用,单机Eureka服务注册中心cloud-eureka-server7001搭建(十)
    SpringCloud无介绍快使用,新建cloud-api-commons公共模块module(九)
    SpringCloud无介绍快使用,新建子module消费者订单模块(八)
    SpringCloud无介绍快使用,热部署devtools配置(七)
    SpringCloud无介绍快使用,子module提供者支付微服务业务开发(六)
    SpringCloud无介绍快使用,新建子module提供者支付微服务yml整合和新建启动类(五)
    SpringCloud无介绍快使用,新建子module提供者支付微服务pom整合(四)
    SpringCloud无介绍快使用,springcloud父工程pom文件整理(三)
    SpringCloud无介绍快使用,IDEA新建springcloud父工程(二)
    SpringCloud无介绍快使用,与Spingboot之间的兼容版本选择(一)




    作为程序员第 186 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …

    Lyric: 我耍你耍的就像土耳其的冰淇

  • 相关阅读:
    韦东山嵌入式linux系列-具体单板的 LED 驱动程序
    JVM栈与堆(一)之栈和栈中单位栈帧
    软件测试大环境求职难,跳槽难?我在大军中异军突起
    竞赛 基于深度学习的人脸表情识别
    RabbitMQ-发布/订阅模式
    c:变参函数:汇编解析;va_list;marco 宏:__VA_ARGS__
    软件测试基本概念
    算力调度和云计算有何区别
    刷题记录:牛客NC14704美味菜肴
    上位机开发之三菱PLC通信
  • 原文地址:https://blog.csdn.net/cucgyfjklx/article/details/125434976
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号