首页 > 其他分享 >nacos

nacos

时间:2023-05-29 09:46:18浏览次数:42  
标签:配置文件 spring 配置 nacos XX cloud

1. 官网

https://nacos.io/zh-cn/docs/quick-start.html

2. 下载Nacos

  1. 输入网址:https://github.com/alibaba/nacos

  2. 选择Naocs版本 1.4.2

3. 安装Nacos

3.1 Windows下安装

  • 解压到需要安装的文件夹下即为安装。

3.2 Linux下安装

  • 将Nacos的nacos-server-1.4.2.tar.gz 上传至需要安装的文件夹下并且使用 tar -zxvf nacos-server-1.4.2.tar.gz 命令解压即为安装。

4. 创建数据库

  1. 创建数据库例如:nacos_config
  2. 进入文件夹:nacos -> conf 打开 nacos-mysql.sql 文件
  3. 将脚本复制到类似Navicat工具的执行窗口中,执行脚本,生成数据库表格。

5. 修改配置

5.1 数据库配置

  1. 进入文件夹:nacos -> conf 打开 application.properties 文件

  2. 找到:Connect URL of DB:区域对应的数据库配置:

    #*************** Config Module Related Configurations ***************#
    ### If use MySQL as datasource:			指定数据库类型
    spring.datasource.platform=mysql     
    
    ### Count of DB:    连接的数据个数
    db.num=1
    
    ### Connect URL of DB:  数据库配置以 192.168.2.240 为例
    db.url.0=jdbc:mysql://192.168.2.240:3306/cloud_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user.0=root
    db.password.0=inhe@2011
    
    1. db.url.0:数据库相关信息只需要修改地址、端口、数据库名称

    2. db.user.0:连接数据库的用户名

    3. db.password.0:连接数据库的密码

5.2 启动参数配置

  1. 开发环境下进入文件夹 nacos -> bin 打开 startup.cmd(linux是startup.sh)设置启动模式,开发环境一般使用单机模式。

    集群模式:set MODE="cluster"

    单机模式:set MODE="standalone"

  2. 开发环境可以修改参数,节省资源,修改 NACOS_JVM_OPTS 对应的参数

    单机模式:

    if %MODE% == "standalone" (
        echo "nacos is starting with standalone"
    	  set "NACOS_OPTS=-Dnacos.standalone=true"
        set "NACOS_JVM_OPTS=-Xms512m -Xmx512m -Xmn256m"
    )
    
    修改为:
    
    if %MODE% == "standalone" (
        echo "nacos is starting with standalone"
    	  set "NACOS_OPTS=-Dnacos.standalone=true"
        set "NACOS_JVM_OPTS=-Xms128m -Xmx128m -Xmn128m"
    )
    

    集群模式:

    if %MODE% == "cluster" (
        echo "nacos is starting with cluster"
    	  if %EMBEDDED_STORAGE% == "embedded" (
    	      set "NACOS_OPTS=-DembeddedStorage=true"
    	  )
    
        set "NACOS_JVM_OPTS=-server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof -XX:-UseLargePages"
    )
    
    可以根据需要调整-Xms、-Xmx、-Xmn、-XX:MetaspaceSize、-XX:MaxMetaspaceSize
    -Xms、-Xmx、-Xmn:参数设置一般为 2:2:1 比例
    
    if %MODE% == "cluster" (
        echo "nacos is starting with cluster"
    	  if %EMBEDDED_STORAGE% == "embedded" (
    	      set "NACOS_OPTS=-DembeddedStorage=true"
    	  )
    
        set "NACOS_JVM_OPTS=-server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof -XX:-UseLargePages"
    )
    

6. 启动和停止

6.1 Windows下启动

  1. 启动:进入文件夹 nacos -> bin 双击 startup.cmd 脚本
  2. 停止:进入文件夹 nacos -> bin 双击 shutdown.cmd 脚本

6.2 Linux下启动

  1. 启动:进入文件夹 nacos -> bin 执行startup.sh 脚本 -> ./startup.sh
  2. 停止:进入文件夹 nacos -> bin 执行shutdown.sh 脚本 -> ./shutdown.sh

6.3 登录Nacos

  • 输入地址:http://ip:8848/nacos

  • IP:nacos安装的服务器地址

  • 8848:默认端口为8848,可以在conf目录的 application.properties 文件中进行修改

  • 默认登录的用户名密码

    • 用户名:nacos

    • 密码:nacos

7. Nacos开启鉴权

  1. 进入修改文件夹 nacos -> conf 修改 application.properties 配置文件

    nacos.core.auth.enabled=false
    
    修改为
    
    nacos.core.auth.enabled=true
    
  2. 设置 nacos.core.auth.default.token.secret.key

  3. 设置nacos.core.auth.server.identity.key 和 nacos.core.auth.server.identity.value

8. Spring Boot 集成Nacos

8.1 maven坐标

  • 版本需要根据springcloud版本和springboot版本选择

  • spring cloud:Hoxton.SR11

  • spring boot:2.3.8.RELEASE

  • spring cloud alibaba:2.2.6.RELEASE

  • 版本管理

<!-- spring-cloud -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-dependencies</artifactId>
	<version>Hoxton.SR11</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>

<!-- spring-boot -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-dependencies</artifactId>
	<version>2.3.8.RELEASE</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>

<!-- spring-cloud-alibaba -->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-alibaba-dependencies</artifactId>
	<version>2.2.6.RELEASE</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>
  • 需要使用到nacos服务
<!-- 服务注册 -->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

<!-- nacos配置 -->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

9. Nacos 做注册中心

9.1 maven坐标

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

9.2 配置文件

spring:

  # nacos 配置
  cloud:
    nacos:

      # 注册中心
      discovery:
        server-addr: 192.168.2.240:8848                   # 注册中心地址 ip:port
        namespace: fd21153b-4920-473c-bd41-2966a36bf1a5   # 命名空间
        group: DEV_GROUP                                  # 分组
        username: nacos                                   # 用户名
        password: inhe@nacos                              # 密码

9.3 主启动类

  • 注册到nacos添加以下注解
@EnableDiscoveryClient
  • 调用其他服务提供的对外接口添加以下注解
@EnableFeignClients

9.4 服务列表

  • 启动springboot工程,登录到nacos管理界面,服务管理 -> 服务列表

  • 查询列表中显示已经注册到nacos中的服务

10. Nacos做配置中心

将配置文件放在配置中心管理可以实现配置文件共用,避免重复配置,方便维护。

10.1 maven坐标

<!-- nacos配置 -->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

9.2 配置文件

  1. 创建 bootstrap.yml 配置文件
  2. 将nacos注册配置和nacos读取nacos配置中心的配置写在 bootstrap.yml文件中,application.yml 中只存储激活那种环境下的配置(开发、测试、生产)
  • bootstrap.yml
spring:

  # nacos 配置中心文件读取
  cloud:
    nacos:
      config:
        server-addr: 192.168.2.240:8848                   # 配置中心地址
        username: nacos                                   # 用户名
        password: inhe@nacos                              # 密码
        namespace: fd21153b-4920-473c-bd41-2966a36bf1a5   # 命名空间
        extension-configs: 
        
          # 读取多个配置文件,每个 - data-id 对应代码配置中心中的一个配置文件

          # produce-dev.yaml
          - data-id: produce-dev.yaml   # nacos中Data Id名称
            group: DEV_GROUP            # 配置文件所在的分组
            refresh: true               # 配置文件支持实时刷新
            
          # macos注册中心配置
          - data-id: nacos-dev.yaml
            group: DEV_GROUP
            refresh: true               

          # redis配置
          - data-id: redis-dev.yaml
            group: DEV_GROUP
            refresh: true

          # rocketmq 配置
          - data-id: rocketmq-dev.yaml
            group: DEV_GROUP
            refresh: true

          # minio 配置
          - data-id: minio-dev.yaml
            group: DEV_GROUP
            refresh: true
  • application.yml
spring:
  profiles:
    active: dev

11. public(保留空间)、命名空间(namespace)、分组(group)、Data Id

是Nacos用来划分配置范围的概念:

  1. public(保留空间):Nacos的默认命名空间,不指定名称空间时,默认指定此空间

  2. 命名空间(namespace):最大的概念,用来区分环境,配置中心可以创建多个 命名空间

    1. dev:开发环境

    2. test:测试环境

    3. pro:生成环境

  3. 分组(group):一个命名空间下可以范围多个组,一个组下可以有多个 Data Id

  4. Data Id:对应 配置管理 -> 配置列表 中的文件,文件内容是具体的配置

  5. 可以通过指定 命名空间(namespace) -> 分组(group) -> Data Id 确定一个唯一的配置文件

  6. 大小关系:命名空间(namespace) -> 分组(group) -> Data Id

例如:创建一个开发环境的命名空间,在开发环境下创建不同的分组,不同的分组下还可以创建不同的配置文件。

12. Nacos高可用

12.1 设置集群启动模式

  • 启动文件修改 startup.cmd 或者 startup.sh;所有节点nacos都需要修改
set MODE="cluster"

12.2 修改端口号

  • 根据需要修改 application.properties配置文件的端口号;需要节点都需要安装实际节点占用端口配置

    ### Default web server port:
    server.port=8848
    

12.3 配置集群文件 cluster.conf

  • 复制一份 cluster.conf.example 并且修改文件名为 cluster.conf

  • 设置其他所有nacos的ip和端口

    • 例如:配置本地三个nacos端口分别为7777、8888、9999;所有节点都需要配置
    127.0.0.1:7777
    127.0.0.1:8888
    127.0.0.1:9999
    
  • 启动所有nacos节点,集群搭建完成

  • 可以在nacos控制界面中的 集群管理 -> 节点列表 中查看详情

标签:配置文件,spring,配置,nacos,XX,cloud
From: https://www.cnblogs.com/wufuqin/p/17439525.html

相关文章

  • rnacos v0.1.6版本发布
    rnacos是一个用rust重新实现的nacos。rnacos比java实现的nacos更轻量、快速、稳定;合适在开发、测试、受资限服务等环境平替nacos服务使用。rnacosv0.1.6变更内容完成历史配置历史变更记录页面开发。主要包含查询配置历史记录,与历史记录内容恢复两个功能。修复grpc处理日志......
  • 8.Nacos
    9.Nacos9.1.SpringCloudAlibaba简介SpringCloudAlibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过SpringCloud编程模型轻松使用这些组件来开发分布式应用服务。依托SpringCloudAlibaba,只需要添加一些注解和少量配置,就可......
  • docker部署nacos集群
    1.环境准备准备4台服务器,一台安装nginx和mysql另三台做集群使用IP服务操作系统192.168.3.215Nginx/MysqlCentOS7.9192.168.3.216Nacos-1CentOS7.9192.168.3.217Nacos-2CentOS7.9192.168.3.218Nacos-3CentOS7.9     mysql选用5.7......
  • 使用 Nacos 的配置功能和自动更新
    Nacos不但可以作为注册中心,同时也可以作为配置中心,方便我们对SpringCloud中的各个SpringBoot微服务的配置进行统一的管理维护。尤其是当微服务数量较多,并且在不同的服务器上进行部署时,使用配置中心进行统一管理维护的优势就更加明显。本篇博客仍然使用之前搭建的Nacos集群......
  • nacos的使用
    nacos的使用1.nacos可以作为注册中心和配置中心使用nacos的配置中心和注册中心的话,我们需要在配置文件中增加关于nacos的配置namespace,group可以不写,那么就是注册到默认的namespace和group下,不同namespace和group下是隔离开来的 2.如果我们只是想要注册到na......
  • Netty+Nacos+Disruptor自研企业级API网关-江潭落月复西斜
    Netty+Nacos+Disruptor自研企业级API网关download:3w51xuebccom使用Netty和SpringBoot实现仿微信的示例在本文中,我们将使用Netty和SpringBoot框架来创建一个简单的聊天应用程序,类似于微信。这个应用程序将支持多用户聊天和即时消息发送。下面让我们来一步步看看如何实现。第一步......
  • centos7上配置nacos及开机启动服务
    这里安装的是nacos2.2.0 https://github.com/alibaba/nacos/releasescentos7中需要配置java环境这里一般java1.8或1116都行sudoyumupdate#安装OpenJDK(JavaDevelopmentKit):#对于Java8:sudoyuminstalljava-1.8.0-openjdk#对于Java11:sudoyuminstalljava-1......
  • Linux上nacos启动成功,但网页无法加载
    Linux上nacos启动成功,但网页无法加载1、docker查询dockerps2、查询firewall防火墙是否打开8848端口firewall-cmd--query-port=8848/tcp若是返回yes则是打开,若是返回FirewallDisnotrunning则先打开防火墙。systemctlstartfirewalld.service3、打开8848端口f......
  • nacos开发中的坑
    nacos中的坑当不同开发者共用同一个nacos服务的时候,会导致在测试接口的时候出现404轮询的问题,因为开发者甲在调试A服务中的B功能接口,在乙开发者调试A服务中没有B功能的接口;所以导致出现404轮询的问题,下面是图解......
  • 记一次windows装docker,然后nacos连接宿主机mysql报错问题
    之前一直用linux装docker,这两天有空研究下windows上装DockerDesktop。安装步骤就不一一细说了,记录几个容易忘得地方。设置docker镜像存储位置//打包现有镜像wsl--exportdocker-desktop-data"D:\\work\\other-tools\\docker\\docker-desktop-data.tar"//注销镜像wsl--......