nacos动态配置数据源_Spring Cloud 系列之 Alibaba Nacos 配置中心

本文详细介绍了Nacos的动态配置数据源功能,包括Nacos的安装、配置MySQL数据库、配置入门、核心概念以及集群环境搭建。通过实例展示了如何发布和获取配置,探讨了命名空间、组、配置管理等相关概念,提供了集群部署的步骤和配置说明。
摘要由CSDN通过智能技术生成

ac4e2987669c5b68b7751b2d0490fa47.png

Nacos 介绍

f432064818bdee09fb241d4854dc5c16.png

Nacos 是 Alibaba 公司推出的开源工具,用于实现分布式系统的服务发现与配置管理。英文全称 Dynamic Naming and Configuration Service,Na 为 Naming/NameServer 即注册中心,co 为 Configuration 即配置中心,Service 是指该注册/配置中心都是以服务为核心。服务(Service)是 Nacos 世界的一等公民。

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

Nacos 致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 可以更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构的服务基础设施。

使用 Nacos 简化服务发现、配置管理、服务治理及管理的解决方案,让微服务的发现、管理、共享、组合更加容易。

Nacos 官网:https://nacos.io/zh-cn/

Github:https://github.com/alibaba/nacos

Nacos 安装

环境准备

Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行 Nacos,还需要为此配置 Maven 环境,请确保是在以下版本环境中安装使用:

  • JDK 1.8+;
  • Maven 3.2.x+。

下载源码或者安装包

可以通过源码和发行包两种方式来获取 Nacos。

源码方式

从 Github 上下载源码方式。

git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
ls -al distribution/target/

// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin

发行包方式

您可以从 https://github.com/alibaba/nacos/releases 下载最新稳定版本的 nacos-server 包。

启动服务器

Linux/Unix/Mac

在 Nacos 的解压目录 nacos/bin 目录下启动。

启动命令(standalone 代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是 ubuntu 系统,或者运行脚本报错提示符号找不到,可尝试如下运行:

bash startup.sh -m standalone

Windows

启动命令:

cmd startup.cmd

或者双击 startup.cmd 运行文件。

访问

访问:http://localhost:8848/nacos/ ,默认用户名/密码是 nacos/nacos。

92a339876bf53639a37a3dd59d80d9c0.png

fef7e3fd5c4018a8c29b921f99bdfc2f.png

关闭服务器

Linux/Unix/Mac

sh shutdown.sh

Windows

cmd shutdown.cmd

或者双击 shutdown.cmd 运行文件。

配置 MySQL 数据库

Nacos 在 0.7 版本之前,默认使用的是嵌入式数据库 Apache Derby 来存储数据(内嵌的数据库会随着 Nacos 一起启动,无需额外安装);0.7 版本及以后,增加了对 MySQL 数据源的支持。

MySQL数据源

环境要求:MySQL 5.6.5+(生产使用建议至少主备模式,或者采用高可用数据库);

初始化 MySQL 数据库

创建数据库 nacos_config

SQL源文件地址:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql ,或者在 nacos-server 解压目录 conf 下,找到 nacos-mysql.sql 文件,运行该文件,结果如下:

fe81353826802a118f1a95430f9bcd8e.png

application.properties 配置

修改 nacos/conf/application.properties 文件的以下内容。

0db90414a44846e00d8ea786ac0d24ac.png

最终修改结果如下:

#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
# 指定数据源为 MySQL
spring.datasource.platform=mysql

### Count of DB:
# 数据库实例数量
db.num=1

# 数据库连接信息,如果是 MySQL 8.0+ 版本需要添加 serverTimezone=Asia/Shanghai
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
db.user=root
db.password=1234
如果你和我一样使用的是 MySQL 8.0+ 版本,那么启动 Nacos 时肯定会报错。莫慌,在 Nacos 安装目录下新建 plugins/mysql 文件夹,并放入 8.0+ 版本的 mysql-connector-java-8.0.xx.jar,重启 Nacos 即可,启动时会提示更换了 MySQL 的 driver-class 类。

65a3822fe98074d6f96b3a9a613ba436.png

Nacos 配置入门

nacos-config-demo 聚合工程。SpringBoot 2.3.0.RELEASESpring Cloud Hoxton.SR5

发布配置

选择 配置管理配置列表 页面,点击最右侧 + 按钮新建配置。

91684e963bda7db03f56f27a30010a53.png

Nacos Config 使用 Data IDGroup 来确定配置。

下图显示 Data Idproduct-service.yaml,组使用默认组,并添加 yaml 格式的配置信息。

9608266528f74ae61ba2e39afd499778.png
project:
  name: SpringCloudAlibaba
  org: Aliababa

获取配置

创建项目

我们创建聚合项目来讲解 Nacos,首先创建一个 pom 父工程。

5437de43e5fe489dc554843d52f059d7.png

8c91d07d3904fa588c9de67b0c4671db.png

添加依赖

pom.xml

<?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">
    <modelVersion>4.0.0</modelVersion>

    <!-- 项目坐标地址 -->
    <groupId>org.example</groupId>
    <!-- 项目模块名称 -->
    <artifactId>nacos-config-demo</artifactId>
    <!-- 项目版本名称 快照版本SNAPSHOT、正式版本RELEASE -->
    <version>1.0-SNAPSHOT</version>

    <!-- 继承 spring-boot-starter-parent 依赖 -->
    <!-- 使用继承方式,实现复用,符合继承的都可以被使用 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
    </parent>

    <!--
        集中定义依赖组件版本号,但不引入,
        在子工程中用到声明的依赖时,可以不加依赖的版本号,
        这样可以统一管理工程中用到的依赖版本
     -->
    <properties>
        <!-- Spring Cloud Hoxton.SR5 依赖 -->
        <spring-cloud.version>Hoxton.SR5</spring-cloud.version>
        <!-- spring cloud alibaba 依赖 -->
        <spring-cloud-alibaba.version>2.1.0.RELEASE</spring-cloud-alibaba.version>
    </p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值