zoukankan      html  css  js  c++  java
  • SpringCloud-Alibaba-Nacos 服务注册中心&配置中心

    Spring Cloud Alibaba

    由于 Spring Cloud Netflix 项目进入维护模式(将模块置于维护模式意味着 Spring Cloud 团队将不会再向模块中添加新功能,只会修复 block 级别的 bug 以及安全问题),阿里巴巴团队为我们提供了一套新的微服务开发一站式解决方案

    详见官方介绍:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

    Nacos 概述

    是什么?

    一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

    Nocas 就是注册中心与配置中心的组合,可以替代 Eureka + Config + Bus

    能干嘛?

    替代 Eureka 做服务注册中心;替代 Config 做服务配置中心

    下载、安装与运行

    下载地址:https://github.com/alibaba/nacos/releases

    下载解压后,打开 bin 目录,打开 cmd 窗口输入 startup.cmd 或者双击 startup.cmd 均可启动(Windows版)

    浏览器地址栏输入 localhost:8848/nacos 登录,默认用户名密码都是 nacos,主页面如下:

    Nacos 作为注册中心

    引入 Maven 依赖

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

    需要在配置文件 application.yml 指定 Nacos 地址

    spring:
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 # nacos地址
    

    Nacos 默认是支持负载均衡的,集成了 Ribbon

    将服务注册到 Nacos 后可以在服务列表中查看

    Nacos 与其它注册中心的对比

    Nacos 与其它注册中心特性对比

    Nacos 支持 AP(高可用) 和 CP(强一致性) 模式的切换

    使用命令 curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP' 进行切换

    Nacos 作为配置中心

    基础配置

    所需 Maven 依赖

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    

    application.yml

    spring:
      profiles:
        active: dev
    

    bootstrap.yml

    server:
      port: 3377
    spring:
      application:
        name: nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848
          config:
            server-addr: localhost:8848
            file-extension: yml #配置文件格式
    

    在 Nacos 界面新建配置文件,命名规则是 ${prefix}-${spring.profile.active}.${file-extension},通俗来说就是:项目名-部署环境.文件后缀

    分类配置

    Nacos 采用 NameSpace + Group + Data Id 的分类方式,类似于 Java 里的包名 + 类名 + 方法名

    NameSpace 用于区分部署环境,Group 和 Data Id 逻辑上区分两个目标对象,默认 NameSpace = public;group = DEFAULT_GROUP;Cluster = DEFAULT

    Data Id 方案

    编写两个不同部署环境的配置文件,只要在 application.yml 中修改了部署环境,就可以获取到对应配置文件的内容

    Group 方案

    新建配置文件的时候指定分组

    通过此配置指定选择的分组

    spring:
      cloud:
        nacos:
          config:
            group: DEV_GROUP
    

    NameSpace 方案

    配置不同的分组,初始默认只有一个 public

    通过此配置指定选择的命名空间

    spring:
      cloud:
        nacos:
          config:
            namespace: 2d22fcfe-2314-49c4-8a67-6b12397f44d2 #命名空间的唯一标识
    

    Nacos 集群与持久化配置

    Nacos支持三种部署模式

    • 单机模式:用于测试和单机试用
    • 集群模式:用于生产环境,确保高可用
    • 多集群模式:用于多数据中心场景

    Nacos 持久化配置解释

    Nacos 默认自带的是嵌入式数据库 derby,对于 Nacos 集群不能实现数据共享,为了能够保证真正持久化,我们需要切换到 Mysql 数据库

    1、到 nacosconf 目录下找到 nacos-mysql.sql 文件,新建一个 nacos_config 数据库,将里面的语句在数据库中执行

    2、在 application.properties 末尾添加如下配置

    spring.datasource.platform=mysql
    
    db.num=1
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=youdontknow
    

    3、启动 Nacos,进入页面可以发现之前的数据不见了,新添加的配置可以在 MySQL 数据库中看到

  • 相关阅读:
    WebService cxf提供接口
    在文件系统的某一个目录中查找某一个字符串
    在notepad++中插件安装的办法
    windows中的oracle12SE后启动的系统服务的列表
    在windows环境初步了解tuxedo
    使用MS VS的命令来编译C++程序
    我所常用的git命令
    使用python对文件中的数值进行累加
    C++中继承关系中的同名隐藏和对策
    用eclipse来制作并使用可执行的jar文件
  • 原文地址:https://www.cnblogs.com/songjilong/p/12796258.html
Copyright © 2011-2022 走看看