返回顶部
首页 > 资讯 > 精选 >Nacos接入的坑及怎么避免
  • 456
分享到

Nacos接入的坑及怎么避免

2023-06-27 11:06:10 456人浏览 八月长安
摘要

这篇文章主要介绍“Nacos接入的坑及怎么避免”,在日常操作中,相信很多人在Nacos接入的坑及怎么避免问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Nacos接入的坑及怎么避免”的疑惑有所帮助!接下来,请跟

这篇文章主要介绍“Nacos接入的坑及怎么避免”,在日常操作中,相信很多人在Nacos接入的坑及怎么避免问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Nacos接入的坑及怎么避免”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

背景

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

接入

加入依赖

  1. 第一步在 pom 配置文件中加入下面的依赖,用于实现服务注册发现和配置中心功能。

<!-- nacos 配置中心 --><dependency>  <groupId>com.alibaba.cloud</groupId>  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>  <!-- nacos 注册发现 --><dependency>  <groupId>com.alibaba.cloud</groupId>  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>

增加配置

  1. 第二步在 SpringBoot 项目的启动类上增加如下注解 @EnableDiscoveryClient 用于启动服务注册发现功能。

  1. 增加配置文件,对应的配置信息需要修改成适合自己的,为了方便管理,应用的分组名称,命名空间以及相关的配置都需要合理的设置。多个业务使用同一个 nacos 集群的时候,需要根据各个的业务设定各自的命名空间。所有的配置文件都需要在对应的命名空间下设置,避免多个业务混用,另外业务需要根据用到的组件或者配置,设定独立的配置文件,例如数据库的配置,Redis 的配置等都需要单独设定,这样是为了同一个应用其他的其他服务也可以使用,而且再有地址变更的时候可以只修改一个文件就好,不会忘记。

# 应用服务名称spring.application.name=application-name# 应用分组名称spring.cloud.nacos.config.group=GROUP-NAME# 配置文件的后缀名spring.cloud.nacos.config.file-extension=properties# nacos 对应的命名空间,在后台创建好命名空间后会自动生成spring.cloud.nacos.config.namespace=xxxxxxxxxxxxxxxxxxxxxxxxx# 对应的配置文件# MySQL 相关配置spring.cloud.nacos.config.ext-config[0].data-id=Mysql.propertiesspring.cloud.nacos.config.ext-config[0].group=GROUP-NAME# Redis 相关配置spring.cloud.nacos.config.ext-config[1].data-id=redis.propertiesspring.cloud.nacos.config.ext-config[1].group=GROUP-NAME# 其他配置等spring.cloud.nacos.config.ext-config[2].data-id=other.propertiesspring.cloud.nacos.config.ext-config[2].group=GROUP-NAME# 配置中心地址,多个逗号分隔spring.cloud.nacos.config.server-addr=xxx.xx.xx.xx:xxxx# 服务注册发现地址,多个逗号分隔spring.cloud.nacos.discovery.server-addr=xxx.xx.xx.xx:xxxx# 集群名称spring.cloud.nacos.discovery.cluster-name=CLUSTER-NAME
  1. 代码中可以使用注解 @Value() 来直接读取 Nacos 配置中的属性参数,也可以使用 @ConfigurationProperties(prefix = "spring.datasource") 读取批量参数。

  1. spring.cloud.nacos.config.ext-config[0].refresh=true 该参数表示是否开启自动更新,根据是否需要自动更新觉得是否配置,如果需要自动更新,加上这个配置后还需要在需要自动更新配置的 Bean 上面增加@RefreshScop 注解。然后对应的 Bean 内部的属性就可以实现自动更新了。增加了spring.cloud.nacos.config.ext-config[0].refresh=true 配置后在修改了 Nacos 中的配置过后日志会出现下面信息,会重新加载配置,并且输出变更的 key 信息。

服务调用

当所有的服务都接入 Nacos 过后,我们在 Nacos 的后台就可以看到每个服务的情况,如下图,可以看到服务状态。

然后我们在服务 A 里面如果要调用服务 B 的时候,就可以直接在 FeginClient 中配置服务 B 的名称,不需要填写 URL 了。这样我们就不用考虑服务 B 是否地址和端口会不会变。服务 B 的实例增加还是减少,端口是否变了,对服务 A 来说都不关心,只要有个服务名称就可以了。

避坑

命名空间

Nacos 有一个默认的名为 public 的命名空间,这个命名空间是无法删除的,所有未指定命名空间的配置都会放在该命名空间下;同样的 Nacos 有一个默认的名为 DEFAULT_GROUP 的分组,在没有指定分组名称的时候默认的配置都是在该分组下。

对于我们应用程序来说,由于很多情况下一个 Nacos 集群是多个团队共同使用的,所以为了方便管理,我们需要根据自己的业务设置自己的命名空间,用于存放本业务的配置文件。本命名空间下的配置文件,根据各个的模块决定是否需要重新分组。

要知道在没有清晰的命名空间划分的时候,要想修改一个配置的内容,是很难受的一件事情。线上的配置调整,一个不小心就是事故。如果还是自动更新配置的话,那连后悔的机会都没有。

精细配置

配置文件应该专一,一个配置文件就设置一个内容,比如 mysql 的数据源单独一个配置,Redis 的数据源单独一个配置,如果多个 Redis 服务,根据功能建议分开配置,因为并不是所有的服务都需要每个 Redis 的链接配置。各自的服务根据需要单独引用对应的配置文件即可。

将所有的配置独立成一个配置文件方便后续修改配置,只要修改一个配置文件就好,不用担心其他还有未修改的地方。

合理的规划配置文件的内容,往往很多时候可以事半功倍,极大的节约时间和减少出错的概率。

自动刷新

前面介绍了如何设置配置自动刷新,不过服务是否需要自动更新配置,这个根据自身的业务去决定。

我这里一般不建议设置自动更新,因为现在都是微服务部署,有时候我们上线一个新功能的时候都是灰度发布,如果配置自动更新,再调整配置过后,全部实例都会生效,这样会有风险。不设置自动更新的话,我们可以单独重启个别实例,观察线上情况,等稳定了再发布所有服务,这样会安全很多。

当然对于没有那么多服务,不需要灰度,影响不大的场景下,配置自动更新会方便很多,再修改配置后不需要重启服务。

到此,关于“Nacos接入的坑及怎么避免”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Nacos接入的坑及怎么避免

本文链接: https://www.lsjlt.com/news/309843.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Nacos接入的坑及怎么避免
    这篇文章主要介绍“Nacos接入的坑及怎么避免”,在日常操作中,相信很多人在Nacos接入的坑及怎么避免问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Nacos接入的坑及怎么避免”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-27
  • 1.Java接入银联支付(chinapay)教程及避坑点
    一、背景及效果展示 现如今,诸多的供应链系统需要使用电子钱包功能,所以接入银联B2B无卡支付,是很多系统应用需要做的事情。银联支付的类型分很多种:网关支付(带token请求实现,下次有空再分享)、B2...
    99+
    2023-09-25
    java 前端
  • 服务器租用怎么避免踩坑
    选择正规的服务商:在选择服务器租用服务商时,一定要选择正规的、有信誉的服务商,可以通过搜索引擎查找相关评价和口碑,或者咨询其他用...
    99+
    2024-04-22
    服务器
  • Java中怎么避免sql注入
    小编给大家分享一下Java中怎么避免sql注入,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言sql注入是web开发中最常见的一种安全漏洞。可以用它来从数据库获...
    99+
    2023-06-26
  • 打包的坑:在Java接口面试中如何避免掉进去?
    在Java接口的面试中,打包是一个非常重要的话题,也是面试官经常会问到的一个问题。打包不仅仅是将代码打成jar包或war包,还包括了很多其他方面,如类的访问控制、接口的设计等等。下面将从这些方面探讨如何避免在Java接口面试中掉进打包的坑中...
    99+
    2023-08-18
    接口 面试 打包
  • MongoDB 3.4中配置文件避免入坑的注意事项有哪些
    这篇文章主要为大家展示了“MongoDB 3.4中配置文件避免入坑的注意事项有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MongoDB 3.4中配置文件...
    99+
    2024-04-02
  • PHP float不准的原因是什么及怎么避免
    今天小编给大家分享一下PHP float不准的原因是什么及怎么避免的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、为什么f...
    99+
    2023-07-05
  • Java怎么有效避免SQL注入漏洞
    这篇文章主要介绍“Java怎么有效避免SQL注入漏洞”,在日常操作中,相信很多人在Java怎么有效避免SQL注入漏洞问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么有效避免SQL注入漏洞”的疑惑有所...
    99+
    2023-06-22
  • 怎么避免陷入网站优化误区
    这篇文章给大家介绍怎么避免陷入网站优化误区,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。第一,不断夯实自己的seo优化基础理论知识。任何一个行业多麽高深的技术都是由一些基础知识点构成的,网站优化行业也不例外,而基础知识...
    99+
    2023-06-10
  • 避免async await的使用及原理是什么
    这篇文章主要讲解了“避免async await的使用及原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“避免async await的使用及原理是什么”吧!谎言和as...
    99+
    2023-07-02
  • 无法使用GHOST及避免出现A:\GHOSTERR.TXT怎么办
    这篇文章主要为大家展示了“无法使用GHOST及避免出现A:\GHOSTERR.TXT怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“无法使用GHOST及避免出现A:\GHOSTERR.TXT...
    99+
    2023-06-09
  • 怎么避免常见css的错误
    本文小编为大家详细介绍“怎么避免常见css的错误”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么避免常见css的错误”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。正如我们今天...
    99+
    2024-04-02
  • mysql怎么避免死锁的产生
    这篇文章主要讲解了“mysql怎么避免死锁的产生”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql怎么避免死锁的产生”吧!说明等待事务超时,主动回滚。进行死锁检查,主动回滚某一事务,让...
    99+
    2023-06-20
  • MySQL数据库中怎么避免写入重复数据
    MySQL数据库中怎么避免写入重复数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们在 MySQL数据库进行表设...
    99+
    2024-04-02
  • Zookeeper集群运维避坑指南是怎么样的
    本篇文章给大家分享的是有关Zookeeper集群运维避坑指南是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先带来的是“监控”专题系列。监控,可以判断服务的健康程度、...
    99+
    2023-06-04
  • C#怎么处理和避免字符串中的SQL注入攻击
    在C#中处理和避免字符串中的SQL注入攻击,可以采取以下几种方法: 使用参数化查询:使用参数化查询可以帮助防止SQL注入攻击。通过...
    99+
    2024-04-28
    C# SQL
  • java批量导入避免重复数据的方法是什么
    在Java中批量导入数据时避免重复数据的方法可以有以下几种:1. 使用数据库的唯一约束:在批量导入数据之前,先查询数据库中已存在的数...
    99+
    2023-08-19
    java
  • jQuery怎么避免AJAX请求的页面刷新
    这篇“jQuery怎么避免AJAX请求的页面刷新”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jQuery怎么避免AJAX请...
    99+
    2023-07-05
  • Redis的内存碎片怎么避免和清理
    内存碎片指的是内存中存在的一些无法被利用的碎片化空间。在Redis中,内存碎片的产生主要是由于内存的分配和释放过程中造成的。为了避免...
    99+
    2024-05-07
    Redis
  • react项目引入antd框架方式及遇到的坑怎么解决
    这篇文章主要介绍了react项目引入antd框架方式及遇到的坑怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react项目引入antd框架方式及遇到的坑怎么解决文章都会有所收获,下面我们一起来看看吧。r...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作