SpringCloudAlibaba-微服务-Nacos服务配置

这篇具有很好参考价值的文章主要介绍了SpringCloudAlibaba-微服务-Nacos服务配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Nacos 安装与部署:https://blog.csdn.net/Cey_Tao/article/details/127611559

一、服务发现

Nacos 的服务发现有三个主要区域,从大到小分别是:命名空间(namespace),分组(group),集群(cluster)

默认分别为 public 命名空间,DEFAULT_GROUP 分组,DEFAULT 集群

不同集群之间的服务可以相互访问,但不同分组或命名空间的服务不可发现

服务发现在 spring.cloud.nacos.discovery 中配置,示例如下:

spring:
  application:
    name: user-service	# 服务名称
  cloud:
    nacos:
      server-addr: @nacos.server-addr@	# nacos 注册中心地址
      discovery:
        namespace: namespace-dev # namespace 的 ip
        group: g1	# 分组名称
        cluster-name: ShenZhen	 # 集群名称

group 和 cluster-name 可以直接配置,namespace 需要先在 nacos 控制台新建命名空间,并得到命名空间的 id

命名空间 id 可以自己填写,也可自动生成

如下图:

SpringCloudAlibaba-微服务-Nacos服务配置

二、负载均衡策略

Nacos 依赖中也包含了 Ribbon 相关依赖,可以通过 Ribbon 来设置负载均衡策略

默认策略为轮询访问

示例如下,对 user-service 服务的访问设置负载均衡策略:

user-service:	# 服务名称,为改服务设置负载均衡策略
  ribbon:
    #    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule	# 随机访问策略
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule	# nacos 优先选择策略

若设置为 NacosRule 策略,nacos 会根据服务发现的相关信息选择最优的服务:

  1. 优先选择同一集群内的服务
  2. 同一集群内根据权重随机选择

权重越大被选择的可能性越大

服务的权重可以在 Nacos 服务详情中设置,如下图:

SpringCloudAlibaba-微服务-Nacos服务配置

三、Naocs 管理配置

新建配置

配置文件是根据命名空间隔离的

在 Nacos 配置列表中选择命名空间,可以添加配置

SpringCloudAlibaba-微服务-Nacos服务配置

下面示例为 user-service 添加一个默认配置,配置内容为服务的日志等级

Nacos 是根据服务名称查找对应的 Data ID,所以 Data ID 应该以服务名称为前缀

SpringCloudAlibaba-微服务-Nacos服务配置

如果需要多环境配置,Data ID 中应加上环境名称后缀,如下:

SpringCloudAlibaba-微服务-Nacos服务配置

拉取配置

添加 nacos 服务发现和服务配置的依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

拉取 nacos 配置的相关属性要配置在 bootstrap 配置文件中

必要的属性有服务名称,nacos 地址,配置格式

在项目 resources 目录下新建 bootstrap.yml,配置示例如下:

spring:
  application:
    name: user-service # 服务名称,要与 Data ID 前缀对应
  profiles:
    active: dev	# 启用环境
  cloud:
    nacos:
      server-addr: @nacos.server-addr@  # nacos 注册中心地址
      discovery:
        namespace: 6c1d9771-2afb-4a48-9ced-4bc21b2781c8 # 服务发现的命名空间 id
      config:
        file-extension: yaml  # 配置格式
        namespace: 6c1d9771-2afb-4a48-9ced-4bc21b2781c8 # 服务配置的命名空间 id
#        group: DEFAULT_GROUP # 默认为 DEFAULT_GROUP

注意服务发现的 namespace 与配置的 namespace 是分开配置的,默认都是在 public 空间

bootstrap 配置中 @@ 可能无法被 Maven 属性替代,在 pom.xml 中添加以下配置即可:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

不同配置的优先级

不同配置的优先级从高到低顺序如下:

nacos 环境配置 > nacos 默认配置 > 命令行参数 > bootstrap 配置 > application 配置

不同优先级之间,不同部分互补,相同冲突部分采用优先级高的配置

但也有例外,据我测试,服务名称(spring.application.name)与服务端口(server.port)是命令行参数的优先级最高

另外,服务端口虽然能通过拉取 nacos 配置设置,但在服务启动后端口号无法变更,所以服务端口不会受热更新影响

配置热更新

在 nacos 配置列表可以编辑已有的配置

如果配置正在被服务使用,配置更改后会立即更新作用到服务,这就是热更新

SpringCloudAlibaba-微服务-Nacos服务配置文章来源地址https://www.toymoban.com/news/detail-470061.html

到了这里,关于SpringCloudAlibaba-微服务-Nacos服务配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为云云耀云服务器L实例评测|SpringCloud相关组件——nacos和sentinel的安装和配置 & 运行内存情况 & 服务器被非法登陆尝试的解决

    最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 本篇博客介绍SpringCloud相关组件——nacos和sentinel的安装和配置,并分析了运行内存情况,此外,还有服务器被非法登陆尝试的解决。 其他相关的华为

    2024年02月07日
    浏览(39)
  • Nacos配置中心中配置文件的创建、微服务读取nacos配置中心

    在企业项目中会有非常多的服务,不同的开发环境还有不同的配置文件,所以就导致配置文件非常多。 那么肯定就会有一些公共配置,多个服务都是使用过一样的,那么就可以使用配置中心来进行统一管理,避免修改一个配置项要去各个服务都改一遍。 使用传统方式的配置

    2024年02月02日
    浏览(42)
  • 微服务 nacos 配置共享配置

    微服务共享配置 在企业开发中,一个微服务架构的项目往往包含着很多个微服务,而各个微服务中难免有些公共重叠的配置,我们可以提取出功能的配置文件 第一步 在nacos 之新建共享配置的文件 dh-shareConfig-dev.yaml 里面可以包含各个微服务的公共配置 第二步各个微服务中指

    2024年02月07日
    浏览(41)
  • Nacos配置文件管理、微服务获取Nacos配置文件、热更新、配置共享、配置优先级等

    传统项目中,当我们需要修改配置文件时,需要修改配置文件,停掉服务,重启服务,这样不利于提升用户体验; 而使用Nacos进行项目的配置文件管理,则可以实现热更新配置文件,在Nacos中修改之后,Nacos会通知项目新的配置文件。 添加配置文件 第一步,点击添加配置:

    2023年04月11日
    浏览(45)
  • 【Java】微服务——Nacos配置管理(统一配置管理&热更新&配置共享&Nacos集群搭建)

    Nacos除了可以做注册中心,同样可以做配置管理来使用。 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。 Nacos一方面可以将配置集中管理,另一方可以

    2024年02月03日
    浏览(55)
  • Nacos Config--服务配置

    Nacos Config--服务配置基于网关,网关详情请见下方链接 http://t.csdn.cn/A8R4Y http://t.csdn.cn/A8R4Y 首先我们来看一下 , 微服务架构下关于 配置文件 的一些问题: 1. 配置文件相对分散。在一个微服务架构下,配置文件会随着微服务的增多变的 越来越多 ,而且分散在各个微服务中,不

    2023年04月22日
    浏览(41)
  • 【微服务】Nacos:发现、配置和管理微服务

    Nacos 在阿里巴巴起源于 2008 2008 2008 年五彩石项目(完成微服务拆分和业务中台建设),成长于十年双十一的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。 随着云计算兴起, 2018 2018 2018 年 Nacos(阿里内部 Configserver/Diamond/ Vipserver 内核)开源,作为阿里十年

    2024年02月07日
    浏览(35)
  • 微服务——Nacos配置管理

    目录 Nacos配置管理——实现配置管理 配置管理实践  Nacos配置管理——微服务配置拉取  Nacos配置管理——配置热更新 方式一: ​编辑 方式二(推荐方式):  Nacos配置管理——多环境配置共享  优先级问题   Nacos配置管理——nacos集群搭建  总结​编辑 在一个微服务架构的系统

    2024年02月15日
    浏览(47)
  • 微服务-Nacos(配置管理)

    在Nacos中添加配置信息: 在弹出表单中填写配置信息:  配置获取的步骤如下:  1.引入Nacos的配置管理客户端依赖(A、B服务):  2.在B服务中的resource目录添加一个bootstrap.yml文件,这个文件是引导文件,优先级高于application.yml  将配置交给Nacos管理的步骤 : 在Nacos中添加配

    2024年02月12日
    浏览(38)
  • 微服务-nacos配置管理

    统一配置管理 :一次配置更改并支持热更新。将核心配置存储到配置管理服务,当微服务启动时会自动读取配置管理服务中的配置信息并结合本地配置启动。当配置改动时,配置管理服务会自动通知微服务,微服务读取新配置并自动热更新,无需重新启动。 配置中心的思路

    2024年02月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包