Nacos简介、安装部署和配置优先级

目录

一、什么是Nacos

二、Nacos安装部署

环境准备

安装方法

下载Nacos

初始化数据库

修改配置

设置MySQL数据源连接

开启认证鉴权

启动服务器

验证日志

验证登录

关闭服务器

配置systemctl管理服务

Nacos配置优先级

多个配置加载优先级

本地配置文件优先级

配置文件优先级修改


一、什么是Nacos

Nacos/nɑ:kəʊs/的全称为Dynamic Naming and Configuration Service,它是阿里开源的一个整合了动态服务发现、配置管理和服务管理的基础服务平台。服务(Service)是Nacos世界的一等公民,它提供了服务注册与发现、配置管理、动态 DNS服务、服务元数据及流量管理等功能,用于满足微服务架构和云原生应用的需求。

其关键特性如下:

  1. 服务注册与发现:Nacos 支持多种服务注册发现,包括基于DNS、基于RPC和基于K8s的服务发现。

  2. 动态配置服务:Nacos 提供了一个集中式的配置管理平台,UI简洁易用,支持动态配置,消除了配置变更时重新部署应用的需要,从而提高了应用的灵活性和可管理性。

  3. 动态 DNS 服务:Nacos 提供了轻量级的动态DNS服务,可以将服务名映射到实际的网络地址,实现服务的动态访问和负载均衡,支持权重路由,更容易实现灵活的路由策略和流量控制。

  4. 服务及元数据管理:Nacos提供了数据中心所有服务及元数据的管理功能,包括服务的描述、生命周期、静态依赖分析、健康状态、流量管理、路由及安全策略、服务SLA 以及metrics统计数据,并提供可视化界面展示。

  5. 服务健康检查:Nacos 内置了健康检查功能,支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查,可以对服务实例的健康状态进行监控和管理。

二、Nacos安装部署

Nacos支持单机(开发和测试环境)、集群(推荐生产环境)和多集群(推荐多数据中心场景)三种部署模式,本文以单机部署为例,详细介绍Nacos安装部署方法。

环境准备

安装方法

下载Nacos

Nacos Github Assets下载nacos-server-2.2.0.tar.gz安装包并解压

# 下载
wget https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz
# 解压
tar xvf nacos-server-2.2.0.tar.gz

初始化数据库

首先创建数据库nacos_config和用户nacos,授权所有权限给用户nacos。

# 创建数据库nacos_config
CREATE DATABASE nacos_config DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 授权
grant all privileges on nacos_config.* to 'nacos'@'%' identified by 'nacos' with grant option;
# 刷新权限
flush privileges;

数据库初始化sql文件位于./nacos/conf/mysql-schema.sql,执行如下命令导入表结构和数据。

# 导入sql文件,输入密码nacos
mysql -u nacos -p -D nacos_config < ./nacos/conf/mysql-schema.sql

修改配置

Nacos本质上是一个SpringBoot应用,全局配置位于./nacos/conf/application.properties。

设置MySQL数据源连接

务必先启用数据源MySQL,设置spring.datasource.platform=mysql,从2.2.1版本开始设置spring.sql.init.platform=mysql,否则不生效,默认将保存到内嵌的derby数据库。

db.num=1
db.url.0=jdbc:mysql://192.168.5.10:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos

Nacos支持多种数据源配置

db.num表示数据源数目。

db.url.<index>表示第index+1个数据源Url配置,index默认从0开始。

db.user.<index>表示第index+1个Url的用户名。

db.password.<index>表示第index+1个Url的密码。

注意:如果db.user和db.password没有设置index,所有Url使用db.userdb.password认证,多个用户名和密码会根据逗号切割。如果数据库名称、用户名或密码错误,会报No DataSource set异常,请检查连接是否正确。 

开启认证鉴权

Nacos适合内网运行,不可暴露在公网环境,否则会带来安全风险,Nacos内置了默认鉴权插件,通过以下方式开启服务认证鉴权。

# 开启默认鉴权插件
nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true
# key和value可以自定义,本例中请求api时header需要携带serverIdentity=security
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
# 2.1.0版本后还需要配置插件密钥
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
启动服务器

standalone表示单机模式运行,非集群模式。

# 启动
bin/startup.sh -m standalone
验证日志

启动日志位于/opt/nacos/logs/start.out,出现Nacos started successfully表示启动成功。

2023-08-28 17:16:06,648 INFO Exposing 1 endpoint(s) beneath base path '/actuator'

2023-08-28 17:16:06,678 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos'

2023-08-28 17:16:06,694 INFO Nacos started successfully in stand alone mode. use external storage
验证登录

浏览器打开登录界面:http://192.168.5.10:8848/nacos/index.html#/login,默认登录用户名/密码是nacos/nacos。

关闭服务器
bin/shutdown.sh
配置systemctl管理服务

创建Nacos服务的Unit配置文件/lib/systemd/system/nacos.service

可能异常:ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8。

解决方法:通过设置Environment=JAVA_HOME=/path/to/jdk
加载JAVA_HOME环境变量。

[root@node1 nacos]# vim /lib/systemd/system/nacos.service
[Unit]
Description=nacos
After=network.target

[Service]
Environment=JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
Type=forking
ExecStart=/opt/nacos/bin/startup.sh -m standalone
ExecReload=/opt/nacos/bin/shutdown.sh
ExecStop=/opt/nacos/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

加载Unit配置文件

systemctl daemon-reload

启动nacos.service

systemctl status nacos.service

设置开机启动

systemctl enable nacos.service

Nacos配置优先级

多个配置加载优先级

本地配置文件优先级

spring:
  application:
    name: nacos-config-multi
  main:
    allow-bean-definition-overriding: true
  cloud:
    nacos:
      username: ${nacos.username}
      password: ${nacos.password}
      config:
        server-addr: ${nacos.server-addr}
        namespace: ${nacos.namespace}
        # 用于共享的配置文件
        shared-configs:
          - data-id: common-1.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP
 
          - data-id: common-2.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP
 
          - data-id: common-3.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP
		......
 
        # 常规配置文件
        # 优先级大于 shared-configs,在 shared-configs 之后加载
        extension-configs:
          - data-id: nacos-config-1.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP
            refresh: true
 
          - data-id: nacos-config-2.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP
            refresh: true

          - data-id: nacos-config-3.yaml
            group: SPRING_CLOUD_EXAMPLE_GROUP
            refresh: true
  • 优先级:扩展配置(extension-configs) > 共享配置(shared-configs)
  • 同为扩展配置,下标越大优先级越高:extension-configs[3] > extension-configs[2] > extension-configs[1] > extension-configs[0]
  • 同为共享配置,下标越大优先级越高:shared-configs[3] > shared-configs[2] > shared-configs[1] > shared-configs[0]

配置文件优先级修改

spring:
  cloud:
    config:
      # 如果本地配置优先级高,那么 override-none 设置为 true,包括系统环境变量、本地配置文件等配置
      override-none: true
      # 如果想要远程配置优先级高,那么 allow-override 设置为 false,如果想要本地配置优先级高那么 allow-override 设置为 true
      allow-override: true
      # 只有系统环境变量或者系统属性才能覆盖远程配置文件的配置,本地配置文件中配置优先级低于远程配置;注意本地配置文件不是系统属性
      override-system-properties: false

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安装配置部署Nacos,可以按照以下步骤进行操作: 1. 下载Nacos压缩包,并解压缩:你可以从Nacos的官方网站或者GitHub仓库下载Nacos的压缩包。解压缩后,你会得到一个包含Nacos运行所需文件的目录。 2. 启动Nacos:在解压缩后的Nacos目录中,使用命令行进入bin目录,并输入以下命令启动Nacos: ``` sh startup.sh -m standalone ``` 这将以单机模式启动Nacos。 3. 访问Nacos控制台:启动成功后,可以在浏览器中访问`http://localhost:8848/nacos`来进入Nacos的控制台。 4. 创建命名空间:在Nacos控制台中,可以通过点击左侧导航栏的“命名空间”来创建命名空间。命名空间可以用于隔离配置和服务。 5. 导入配置:在创建命名空间后,可以点击左侧导航栏的“配置管理”来导入配置。你可以选择导入配置文件或者手动添加配置。 6. 部署服务:要将服务注册到Nacos,你需要在你的项目中添加Nacos的客户端依赖。在你的项目的`pom.xml`中,添加如下依赖: ```xml <!-- nacos客户端依赖包 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> ``` 添加依赖后,你可以使用Nacos提供的注解或者配置来注册和发现服务。 这些步骤可以帮助你安装配置部署Nacos。如果你需要更详细的教程,可以参考Nacos官方文档中的安装配置部分。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用nacos配置教程](https://download.csdn.net/download/weixin_38569515/14037188)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Nacos安装指南](https://blog.csdn.net/weixin_45417754/article/details/130057355)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值