首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Nacos 高级详解:提升你的开发和部署效率

编程知识
2024年07月24日 16:59

Nacos 高级

一 、服务集群

需求

  • 服务提供者搭建集群
    image

  • 服务调用者,依次显示集群中各服务的信息
    image

image

搭建

  • 修改服务提供方的controller,打印服务端端口号

image


package com.czxy.controller;

import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * @author 桐叔
 * @email liangtong@itcast.cn
 */
@RestController
public class EchoController {

	@Resource
	private HttpServletRequest request;

	@RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
	public String echo(@PathVariable String string) {
		int serverPort = request.getServerPort();
		return "Hello Nacos Discovery " + string + ":" + serverPort;
	}
}
  • 编写yml配置

image

#端口号
server:
  port: 8170

spring:
  application:
	name: service-provider          #服务名
  cloud:
	nacos:
	  discovery:
		server-addr: 127.0.0.1:8848   #nacos服务地址

#端口号
server:
  port: 8270

spring:
  application:
	name: service-provider          #服务名
  cloud:
	nacos:
	  discovery:
		server-addr: 127.0.0.1:8848   #nacos服务地址
  • 配置idea启动项

      -Dspring.profiles.active=8170
    

image

image

测试

  • 启动3个服务(2个服务提供,1个服务消费)
    image

  • 查看nacos控制台
    image

二、 加载配置文件顺序

  • 3.4.5章节/第4步内容进行详解
  • 加载配置文件的顺序(第4步详解)

nacos 配置 DataId 介绍

  • nacos 提供了3种方式,配置dataId的加载顺序

      A: 共享配置:(过时),使用 shared-configs 替代
      ​	spring.cloud.nacos.config.shared-dataids
      ​	spring.cloud.nacos.config.refreshable-dataids
      B: 加载多配置:(过时),使用 extension-configs 替代
      ​	spring.cloud.nacos.config.ext-config[n]
      C: 内部规则拼接:
      ​	spring.cloud.nacos.config.prefix
      ​	spring.cloud.nacos.config.file-extension
      ​	spring.cloud.nacos.config.group
    
  • 配置 yml 文件中的 DataId

      spring:
        application:
      	name: config-service              # 服务名
        cloud:
      	nacos:
      	  config:
      		server-addr: 127.0.0.1:8848   		# nacos 服务地址
      #        shared-dataids: test1.yml           # 4.1 共享配置 (已过时)
      #        refreshable-dataids: test1.yml
      		shared-configs:                      # 4.1 共享配置【最新】
      		  - data-id: test1-1.yml
      			group: DEFAULT_GROUP
      			refresh: true
      		  - data-id: test1-2.yml
      			group: DEFAULT_GROUP
      			refresh: true
      #        ext-config:                         # 4.2 配置多个 (已过时)
      #          - data-id: test2-1.yml
      #            group: DEFAULT_GROUP
      #            refresh: true
      #          - data-id: test2-2.yml
      #            group: DEFAULT_GROUP
      #            refresh: true
      		extension-configs:                  # 4.2 配置多个 【最新】
      		  - data-id: test2-1.yml
      			group: DEFAULT_GROUP
      			refresh: true
      		  - data-id: test2-2.yml
      			group: DEFAULT_GROUP
      			refresh: true
      		prefix: ${spring.application.name}	# 4.3 data ID的前缀,默认服务名
      		file-extension: yaml          		# data ID的后缀:config-service.yaml
      		group: DEFAULT_GROUP         		# 组名
      	  discovery:
      		server-addr: 127.0.0.1:8848   #nacos服务地址
    

配置 console中的DataId

  • nacos控制台配置

image

测试

  • 后面加载的dataId将覆盖前面加载的dataId设置的内容

  • 查看日志

image

Located property source: [
BootstrapPropertySource {name='bootstrapProperties-test3-demo.yaml'}, BootstrapPropertySource {name='bootstrapProperties-test3.yaml'}, BootstrapPropertySource {name='bootstrapProperties-test2-2.yml'}, BootstrapPropertySource {name='bootstrapProperties-test2-1.yml'}, BootstrapPropertySource {name='bootstrapProperties-test1.yml'}]

三、 多环境配置

介绍

Nacos为不同的环境(开发、测试、生产等)中,提供了多个不同管理级别的概念,包括:Data ID、Group、Namespace

概念 描述
Data ID 数据唯一标识,可理解为Spring Cloud应用的配置文件名
Group 用来对Data ID做集合管理,相当于小分类
Namespace 用于进行租户粒度的配置隔离。相当于大分类

配置介绍

  • 组group配置

      spring.cloud.nacos.config.group=				#组名称
    
  • 命名空间 namespace配置 注意:namespace的ID
    spring.cloud.nacos.config.namespace= #namespace的ID

image

配置内容

  • 在nacos 控制台配置namespace

image

  • 在nacos控制台显示namespace

image

数据持久化

  • 在单机模式时nacos默认使用嵌入式数据实现数据存储,0.7版本后增加了mysql存储数据。

初始化数据库

  • 在conf目录下,提供了nacos-mysql.sql SQL语句,进行数据库的初始化

    • 要求:5.6+ mysql

    • 注意:如果使用mysql 5.5,需要修改sql语句

    image

  • 提供的SQL语句没有创建database,手动创建nacos_config

开启mysql存储

  • conf目录下,提供了application.properties可以修改数据库配置信息

image

### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config_2_1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1234
  • 配合完成后,重启nacos

测试

  • 添加配置信息

image

  • 检查数据库存储

image

Nacos集群搭建

概述

  • 3个或3个以上Nacos节点才能构成集群

  • 配置数据源

    • 使用内置数据源

        startup.cmd -p embedded
      
    • 使用外置数据源(MySQL,参考4.4.2)

  • 在一台主机配置多个节点的端口号不能连续

    • 例如:8841/8842/8843 不可用
    • 例如:8841/8843/8845 可用

配置步骤

image

  • 节点1:配置Nacos8841

    • 配置数据源
    • 修改端口号:8841
    • 配置集群配置文件
    • 启动服务:startup.cmd
  • 节点2:复制Nacos8843

    • 修改端口号:8843
    • 启动服务:startup.cmd
  • 节点3:复制Nacos8845

    • 修改端口号:8845
    • 启动服务:startup.cmd

配置详情

配置节点1

  • 拷贝nacos,并重命名 nacos-2.1.0-8841

  • 配置数据源

image

  • 修改端口号:8841
    image

  • 配置集群配置文件:拷贝conf/cluster.conf.example,重名为cluster.conf

image

  • 启动服务:startup.cmd
    image

  • 成功启动
    image

配置节点2

  • 复制节点nacos-2.1.0-8841,并重命名nacos-2.1.0-8843

  • 修改端口号

image

  • 启动服务

image

配置节点3

  • 复制节点nacos-2.1.0-8841,并重命名nacos-2.1.0-8845

  • 修改端口号
    image

  • 启动服务

image

配置成功

image

常见错误

  • db.num is null

错误提示:db.num is null
原因:没有配置数据库
image

  • unable to start embedded tomcat

错误提示:unable to start embedded tomcat

原因1:没有编写集群配置文件
image

原因2:安装目录有中文

  • 内存不足

提示信息:

原因:内存不足,修改分配内存大小

image

  • Cannot determine JNI library name for ARCH='x86' OS='windows 10' name='rocksdb'

提示信息:Cannot determine JNI library name for ARCH='x86' OS='windows 10' name='rocksdb'

原因:nacos与jdk 系统位数(64位和32位,)不一致

  • JNI相关错误

提示信息: C:\Users\Administrator\AppData\Local\Temp\/librocksdbjni1411968517689619912.dll: Can't find dependent libraries

结语

原因:JAVA_HOME配置的jdk安装目录,而不是jre安装目录
在本文中,我们深入探讨了 Nacos 高级版的功能和特性,展示了它如何提升开发和部署效率,为开发人员和运维团队带来更好的体验。无论是在微服务架构中使用、进行多环境部署还是进行灰度发布,Nacos 高级版都是一个强大而可靠的选择。如果你希望提升你的应用程序和服务的管理水平,不妨考虑尝试 Nacos 高级版吧!

From:https://www.cnblogs.com/xw-01/p/18321416
本文地址: http://shuzixingkong.net/article/384
0评论
提交 加载更多评论
其他文章 Centos7下安装配置最新版本Jenkins(2.452.3)
1、基础环境配置 1.1 服务器下载Jenkins安装包 下载地址:https://www.jenkins.io/download/ 下载命令:wget https://get.jenkins.io/war-stable/2.452.3/jenkins.war 1.2 服务器安装配置JDK Jenk
Centos7下安装配置最新版本Jenkins(2.452.3) Centos7下安装配置最新版本Jenkins(2.452.3) Centos7下安装配置最新版本Jenkins(2.452.3)
AI知识库这事儿FastGPT是专业的
在搭建AI知识库这事儿上,有不少成熟的框架,我推荐使用FastGPT。这篇文章笔者就使用过的两款平台做个比较,FastGPT和百度千帆平台。
AI知识库这事儿FastGPT是专业的 AI知识库这事儿FastGPT是专业的 AI知识库这事儿FastGPT是专业的
2个月搞定计算机二级C语言——真题(1)解析
1. 前言 大家好,我是梁国庆。 这段时间将持续发布计算机二级 C 语言真题的解析,想要同步练习,需要资源包的朋友可以跳转免费获取——《3个月搞定计算机二级C语言——准备工作》。 现在恐怕要改为 2 个月搞定计算机二级 C 语言了,不过没有关系,干就完了! 本篇博客将解析计算机二级 C 语言考试真题
2个月搞定计算机二级C语言——真题(1)解析 2个月搞定计算机二级C语言——真题(1)解析 2个月搞定计算机二级C语言——真题(1)解析
博弈论
一、要素 局中人:在一场竞赛或博弈中,每一个有决策权的参与者成为一个局中人。只有两个局中人的博弈现象称为“两人博弈”,而多于两个局中人的博弈称为“多人博弈”。 策略:一局博弈中,每个局中人都有选择实际可行的完整的行动方案,即方案不是某阶段的行动方案,而是指导整个行动的一个方案,一个局中人的一个可行的
博弈论 博弈论 博弈论
Spectre.Console.Cli注入服务的几种姿势
Spectre.Console大家可能都不陌生,写控制台程序美化还是不错的,支持着色,表格,图标等相当nice,如果对这个库不熟悉我强烈推荐你了解一下,对于写一些CLI小工具还是相当方便的, 本文主要讲讲 Spectre.Console.Cli的服务注入, TA是 Spectre.Console 库
Spectre.Console.Cli注入服务的几种姿势
我可以写代码写到退休吗?记录我的10年前端技术之旅
希望通过分享我个人的经历,给技术人一点信心和方向,原来一直做技术也可以做十年,写代码不仅是我赖以谋生的手段,更是一种生活方式,通过写代码我认识很多志同道合的朋友,在写代码的路上,我也在欣赏和探索这世界
我可以写代码写到退休吗?记录我的10年前端技术之旅 我可以写代码写到退休吗?记录我的10年前端技术之旅 我可以写代码写到退休吗?记录我的10年前端技术之旅
[WPF] 脱机环境实现支持拼音模糊搜索的AutoCompleteBox
AutoCompleteBox是一个常见的提高输入效率的组件,很多WPF的第三方控件库都提供了这个组件,但基本都是字符串的子串匹配,不支持拼音模糊匹配,例如无法通过输入ldh或liudehua匹配到刘德华。要实现拼音模糊搜索功能,通常会采用分词、数据库等技术对待匹配数据集进行预处理。某些场景受制于条
[WPF] 脱机环境实现支持拼音模糊搜索的AutoCompleteBox
记录荒废了三年的四年.net开发的第二次面试(进复试了)
这次面试的是小公司,深圳计通智能,面试分为初试和复试。使用腾讯视频会议完成。相比与上次面试,这次有所进步,进复试了。当然,这可能也与面试风格有关。这次面试着重与项目经历和技术,因此回答比较顺畅。 这一周干了什么 我先是研究了上次面试没回答出来,或者回答得不好的技术问题。然后顺着简历上的技术,又复习了