• Nacos


    1. 介绍

    服务注册+配置中心+总线

    Nacos=Eureka+Config+Bus

    优点:支持AP,CP模式切换

    父POM

    1. <dependencyManagement>
    2. <dependency>
    3.     <groupId>org.springframework.cloud</groupId>
    4.     <artifactId>spring-cloud-dependencies</artifactId>
    5.     <version>Greenwich.SR3</version>
    6.     <type>pom</type>
    7.     <scope>import</scope>
    8. </dependency>
    9. </dependencyManagement>

    2. 注册中心

    2.1 子POM

    1. <dependency>
    2.     <groupId>com.alibaba.cloud</groupId>
    3.     <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    4. </dependency>

    2.2.YML

    1. server:
    2.   port: 9001
    3. spring:
    4.   application:
    5.     name: nacos-payment-provider
    6.   cloud:
    7.     nacos:
    8.       discovery:
    9.         server-addr: localhost:8848 #配置Nacos地址
    10. management:
    11.   endpoints:
    12.     web:
    13.       exposure:
    14.         include: '*'

    2.3. 主启动类

    @EnableDiscoveryClient

    2.4 业务类

    3. 配置中心

    3.1 基础配置

    3.1.1 子POM

    1. <dependency>
    2.     <groupId>com.alibaba.cloud</groupId>
    3.     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    4. </dependency>

    3.1.2 YML

    3.1.2.1 bootstrap

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

    3.1.2.2 application

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

    3.1.3 主启动类

    @EnableDiscoveryClient

    3.1.4 业务类

    @RefreshScope //在控制器类加入@RefreshScope注解使当前类下的配置支持Nacos的动态刷新功能

    3.1.5 配置公式

    ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

    3.2 分类配置

    Namespace+Group+Data ID三者关系?为什么这么设计?


    3.2.1 是什么
    类似Java里面的package名和类名
    最外层的namespace是可以用于区分部署环境的,Group和DataID逻辑上区分两个目标对象。
    3.2.2 三者情况

    默认情况:
    Namespace=public,Group=DEFAULT_GROUP,  Cluster是DEFAULT
     
    Nacos默认的命名空间是public,Namespace主要用来实现隔离。
    比方说我们现在有三个环境:开发、测试、生产环境,我们就可以创建三个Namespace,不同的Namespace之间是隔离的。
     
    Group默认是DEFAULT_GROUP,Group可以把不同的微服务划分到同一个分组里面去
     
    Service就是微服务;一个Service可以包含多个Cluster(集群),Nacos默认 Cluster DEFAULT,Cluster是对指定微服务的一个虚拟划分。比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时就可以给杭州机房的Service微服务起一个集群名称(HZ),给广州机房的Service微服务起一个集群名称(GZ),还可以尽量让同一个机房的微服务互相调用,以提升性能。

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

    3.2.3 NAMESPACE方案

    bootstrap

    1. # nacos注册中心
    2. server:
    3.   port: 3377
    4. spring:
    5.   application:
    6.     name: nacos-order
    7.   cloud:
    8.     nacos:
    9.       discovery:
    10.         server-addr: localhost:8848 #Nacos服务注册中心地址
    11.       config:
    12.         server-addr: localhost:8848 #Nacos作为配置中心地址
    13.         file-extension: yaml #这里我们获取的yaml格式的配置
    14.         namespace: 5da1dccc-ee26-49e0-b8e5-7d9559b95ab0
    15.         #group: DEV_GROUP
    16.         groupTEST_GROUP

    application

    1. # Nacos注册配置,application.yml
    2. spring:
    3.   profiles:
    4.     #active: test
    5.     active: dev
    6.     #active: info

    4. Nacos集群配置

    默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。
    为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。
     


     

  • 相关阅读:
    C++类模板继承关系
    Linux 性能调优之配置CPU调度策略和可调参数
    【SpringBoot项目】一文掌握文件上传和下载【业务开发day04】
    HTML5期末考核大作业,电影网站——橙色国外电影 web期末作业设计网页
    window下杀指定端口进程
    vue jQuery 混用实现 点击日历展示list
    HTTPS 证书生成脚本详细讲解
    AI “开”的诈骗律所被程序员识破了
    osg实现自定义插件读取自定义格式的模型文件到场景
    【Kubernetes】Pod——k8s中最重要的对象之一
  • 原文地址:https://blog.csdn.net/xd592319702/article/details/127097277