网站首页 > 博客文章 正文
Nacos 高级
前言
欢迎来到本篇文章,今天我们将探索 Nacos 高级版,这是一个旨在提升开发和部署效率的强大工具。作为 Nacos 的高级版本,它提供了更多功能和特性,帮助开发人员和运维团队更好地管理和部署他们的应用程序和服务。无论你是一名开发人员、系统管理员还是 DevOps 工程师,Nacos 高级版都将成为你的得力助手。让我们深入了解一下它的优势和特点吧。
正文
一 、服务集群
1 需求
- 服务提供者搭建集群
- 服务调用者,依次显示集群中各服务的信息
2 搭建
- 1)修改服务提供方的controller,打印服务端端口号
- 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;
}
} - 2)编写yml配置
- #端口号
server:
port: 8170
spring:
application:
name: service-provider #服务名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos服务地址yml复制代码#端口号
server:
port: 8270
spring:
application:
name: service-provider #服务名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #nacos服务地址 - 3)配置idea启动项
- -Dspring.profiles.active=8170
3 测试
- 启动3个服务(2个服务提供,1个服务消费)
- 查看nacos控制台
二、 加载配置文件顺序2
- 对 3.4.5章节/第4步内容进行详解
- 加载配置文件的顺序(第4步详解)
1 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
2 配置 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服务地址
3 配置 console中的DataId
- nacos控制台配置
4 测试
- 后面加载的dataId将覆盖前面加载的dataId设置的内容
- 查看日志
- 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'}]
三、 多环境配置
1 介绍
- 在Nacos为不同的环境(开发、测试、生产等)中,提供了多个不同管理级别的概念,包括:Data ID、Group、Namespace。
概念 | 描述 |
Data ID | 数据唯一标识,可理解为Spring Cloud应用的配置文件名 |
Group | 用来对Data ID做集合管理,相当于小分类 |
Namespace | 用于进行租户粒度的配置隔离。相当于大分类 |
2 配置介绍
- 组group配置
- spring.cloud.nacos.config.group= #组名称
- 命名空间 namespace配置 ==注意:namespace的ID==
- spring.cloud.nacos.config.namespace= #namespace的ID
3 配置内容
- 在nacos 控制台配置namespace
- 在nacos控制台显示namespace
四、 数据持久化
- 在单机模式时nacos默认使用嵌入式数据库实现数据存储,0.7版本后增加了mysql存储数据。
1 初始化数据库
- 在conf目录下,提供了nacos-mysql.sql SQL语句,进行数据库的初始化
- 要求:5.6+ mysql
- 注意:如果使用mysql 5.5,需要修改sql语句
- 提供的SQL语句没有创建database,手动创建nacos_config
2 开启mysql存储
- conf目录下,提供了application.properties可以修改数据库配置信息
### 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
3 测试
- 添加配置信息
- 检查数据库存储
五、 Nacos集群搭建
1 概述
- 3个或3个以上Nacos节点才能构成集群
- 配置数据源
- 使用内置数据源
- cmd
复制代码startup.cmd -p embedded - 使用外置数据源(MySQL,参考4.4.2)
- 在一台主机配置多个节点的端口号==不能连续==。
- 例如:8841/8842/8843 不可用
- 例如:8841/8843/8845 可用
2 配置步骤
- 节点1:配置Nacos8841
- 配置数据源
- 修改端口号:8841
- 配置集群配置文件
- 启动服务:startup.cmd
- 节点2:复制Nacos8843
- 修改端口号:8843
- 启动服务:startup.cmd
- 节点3:复制Nacos8845
- 修改端口号:8845
- 启动服务:startup.cmd
3 配置详情
1)配置节点1
- 拷贝nacos,并重命名 nacos-2.1.0-8841
- 配置数据源
- 修改端口号:8841
- 配置集群配置文件:拷贝conf/cluster.conf.example,重名为cluster.conf
- 启动服务:startup.cmd
- 成功启动
2)配置节点2
- 复制节点nacos-2.1.0-8841,并重命名nacos-2.1.0-8843
- 修改端口号
- 启动服务
3)配置节点3
- 复制节点nacos-2.1.0-8841,并重命名nacos-2.1.0-8845
- 修改端口号
- 启动服务
4)配置成功
4 常见错误
1)db.num is null
- 错误提示:db.num is null
- 原因:没有配置数据库
2) unable to start embedded tomcat
- 错误提示:unable to start embedded tomcat
- 原因1:没有编写集群配置文件
- 原因2:安装目录有中文
3)内存不足
- 提示信息:
- 原因:内存不足,修改分配内存大小
4) 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位,)不一致
5) JNI相关错误
- 提示信息: C:\Users\Administrator\AppData\Local\Temp\/librocksdbjni1411968517689619912.dll: Can't find dependent libraries
结语
原因:JAVA_HOME配置的jdk安装目录,而不是jre安装目录 在本文中,我们深入探讨了 Nacos 高级版的功能和特性,展示了它如何提升开发和部署效率,为开发人员和运维团队带来更好的体验。无论是在微服务架构中使用、进行多环境部署还是进行灰度发布,Nacos 高级版都是一个强大而可靠的选择。如果你希望提升你的应用程序和服务的管理水平,不妨考虑尝试 Nacos 高级版吧!
链接:https://juejin.cn/post/7322733301668495375
猜你喜欢
- 2025-01-05 Nacos读取配置文件的顺序
- 2025-01-05 真香系列:聊聊SpringCloud Nacos服务配置中心
- 2025-01-05 IT技术栈——Nacos服务发现基础
- 2025-01-05 香~Spring Boot 应用也可以有注册中心
- 2025-01-05 玩转Nacos参数配置!多图勿点
- 2025-01-05 关于研发规范化的一些实践和思考
- 2025-01-05 Nacos—服务注册中心原理总结
- 2025-01-05 SpringCloud之Nacos作为配置中心
- 2025-01-05 SpringCloud Alibaba的前世今生【面试必看】(5)
- 2025-01-05 Spring AI Alibaba 配置管理,用 Nacos 就够了
你 发表评论:
欢迎- 最近发表
-
- 告别频繁登录!Nuxt3 + TS + Vue3实战:双Token无感刷新方案全解析
- SpringBoot实现单点登录(SSO)的4种方案
- 随机密聊 匿名聊天室程序源码(随机匿名聊天在线)
- SpringBoot大文件上传卡死?分块切割术搞定GB级传输,速度飙升!
- Java 微服务从源码实战开始 | Gitee 项目推荐
- 轻量级埋点sdk搭建,便捷更全面(埋点sdk是什么)
- Spring Boot 实现文件秒传功能(springboot上传文件到指定文件夹)
- 项目中不用redis分布式锁,怎么防止用户重复提交?
- SpringBoot项目日志打印traceId生成
- 如何实现PC端网站扫码登录操作?(网页 扫码)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)