springcloud-nacos简述

news2025/1/16 3:40:26

Spring Cloud alibaba: nacos服务注册中心,配置中心

服务注册中心

1.项目父工程添加springcloudalibaba依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>${spring-cloud-alibaba.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

2.将想要暴露的服务对应的pom文件中添加如下依赖

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

3.工程相应yml文件配置

spring:
  application:
    name: content-api # 服务名称
  cloud:
    nacos:
      server-addr: 192.168.101.65:8848
      discovery:
        namespace: dev402  # 命名空间 要和nacos的相对应
        group: xuecheng-plus-project # 分组

配置完毕后启动content服务,nacos中观察。

配置中心

需要配置的服务中要引入nacos的config依赖

  <!--nacos配置中心需要加入的依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

Data Id 的组成(三部分)

第一部分:application.yaml中配置的应用名,即spring.application.name的值

第二部分:环境名,通过spring.profiles.active指定

第三部分:配置文件 的后缀,目前nacos支持properties、yaml等格式类型。

上面所说的三部分都是要在本地的yaml配置文件中配置的,正因为配置了这三部分服务启动的时候可以从nacos中获取到这个服务的配置的信息,即先去找content-api-dev.yaml这个配置文件。具体配置的优先级后面会说。

spring:
  application:
    name: content-service
  cloud:
    nacos:
      server-addr: 192.168.101.65:8848
      discovery:
        namespace: dev402
        group: xuecheng-plus-project
      config:
        namespace: dev402
        group: xuecheng-plus-project
        file-extension: yaml
        refresh-enabled: true

#profiles默认为dev
  profiles:
    active: dev

配置成功后可以看到控制台中打印NacosRestTemplate.java通过Post方式与nacos服务端交互读取配置信息。

 

 下面直接把完整的配置发出来自己,看一下。我全注释一下,简单东西简单说

server:
  servlet:
    context-path: /content # 服务请求时映射url前缀
  port: 6304 #端口号
#微服务配置
spring:
  application:
    name: content-api # 服务名Data Id 第一部分
  cloud:
    nacos:
      server-addr: 192.168.101.65:8848 # nacos地址,请确保服务可以正常访问
      discovery:   #服务注册的相关配置信息 
        namespace: dev402 # 在nacos页面中创建的命名空间
        group: xuecheng-plus-project # 服务所属分组
      config:   #配置文件相关信息
        namespace: dev402 # 命名空间
        group: xuecheng-plus-project # 服务所属分组
        file-extension: yaml # 程序应该使用 YAML 格式的文件作为配置文件
        refresh-enabled: true
        extension-configs: # 直接引入其他配置文件需要配置extension-configs
          - data-id: content-service-${spring.profiles.active}.yaml
            group: xuecheng-plus-project
            refresh: true
        shared-configs: # 公共配置用这个shared-configs:
          - data-id: swagger-${spring.profiles.active}.yaml
            group: xuecheng-plus-common
            refresh: true
          - data-id: logging-${spring.profiles.active}.yaml
            group: xuecheng-plus-common
            refresh: true
#  直接引用content-service-dev.yaml的数据库配置 但是理论上api层面不应包含数据库相关配置,引用也不行
#  datasource:
#    driver-class-name: com.mysql.cj.jdbc.Driver
#    url: jdbc:mysql://192.168.101.65:3306/gogs?serverTimezone=UTC&userUnicode=true&useSSL=false&
#    username: root
#    password: mysql
  #profiles默认为dev 环境名的Data Id 第二部分
  profiles:
    active: dev

 配置优先级

 项目启动首先加载bootstrap.yml,拿到nacos的请求地址与id获取到远程的nacos配置

其次加载本地的application.yml配置,并与nacos拉取到的配置合并

最后进行spring容器的创建、bean的加载......

配置文件的有限级:

项目应用名配置文件(data ID) > 扩展配置文件(extension-configs)  > 共享配置文件(shared-configs) > 本地配置文件(其他application.yml)。

配置本地优先

需求:有时候我们在测试程序时直接在本地加一个配置进行测试。

正常在idea的服务配置换个端口就可以但是由于受优先级影响,他会优先去nacos中查找相关服务配置,也就是说我们启动服务就会报错端口被占用。

解决办法:

#配置本地优先 
spring:
 cloud:
  config:
    override-none: true

 

导入配置

如果我们已经有了配置文件的zip包可以直接在nacos中进行配置的导入。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/944531.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ZooKeeper与Paxos

Apache ZooKeeper是由Apache Hadoop的子项目发展而来&#xff0c;于2010年11月正式成为了Apache的顶级项目。ZooKeeper为分布式应用提供了高效且可靠的分布式协调服务&#xff0c;提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。在解决分布式数据一致性方面&a…

亿发浙江生产工厂信息化建设管理平台,实现生产智能化、数字化

在全球化、科技深刻变革的时代&#xff0c;浙江省信息化建设正迎来新的发展机遇。以物联网、人工智能大数据、为代表的新技术应用&#xff0c;为人类社会带来了智能、便捷&#xff0c;也标志着新一代信息化浪潮已经到来。特别是在生产型企业中&#xff0c;智能制造是生产型企业…

嵌入式Linux开发实操(十三):GPIO接口开发

从版本4.8开始,Linux内核引入了一个新的基于字符设备的用户空间API,用于管理和控制GPIO(通用输入/输出),在Linux内核4.8之前,在用户空间中管理GPIO的唯一接口是sysfs接口,pio通过/sys/class/gpio中的导出文件进行配置和控制,可以通过该接口执行的基本GPIO操作,比如: …

【论文】2102.DALL-E: Zero-Shot Text-to-Image Generation(文字生成各种各样充满想象图像的开端)

主要参考&#xff1a; openai官网&#xff1a;https://openai.com/blog/dall-e/ 2102.DALLE: Zero-Shot Text-to-Image Generation 2204.DALLE-2 &#xff1a; Hierarchical Text-Conditional Image Generation with CLIP Latents 论文资源网盘下载&#xff1a;https://pan.ba…

独立站在线聊天插件,打造24小时在线客服

独立站的每一个访客都是潜在客户。通过在线聊天&#xff0c;可以提升访客的信任&#xff0c;进一步转化为真实的客户。但是独立站管理者不可能每时每刻都盯着后台&#xff0c;等着客户来提问&#xff0c;然后回复客户。所以独立站拥有在线聊天的功能是有必要的。 而SaleSmartl…

QtConcurrent和QFuture的使用

在Qt中&#xff0c;有时候我们会遇到这样一种情况&#xff0c;需要执行一个很长时间的操作&#xff0c;这时候我们的主界面就会卡住。我们的通常做法就是把这个很长时间的操作扔到线程里去处理&#xff0c;可以使用标准库中的线程也可以使用QThread。 如果我们要在这个很长时间…

MySQL的共享锁和排他锁

锁定读 Locking Reads 有过编程语言并发学习经验的同学&#xff0c;应该都了解过读写锁的概念。读写锁主要是为了解决多读少写条件下&#xff0c;程序的并发性能问题。它的特点即是&#xff1a;如果一个线程持有了读锁&#xff0c;那么其他线程也是可以继续读取它锁定的数据&a…

PCIE WIFI与金手指转接设计

PCIE转接口设计&#xff1a; 金手指转接设计 类似的芯片的框图&#xff1a;

Python 利用Matplotlib制作初中时圆规画的图

背景 大家在初中时&#xff0c;开始学习圆相关的知识&#xff0c;涉及圆的半径、周长、面积 等等&#xff0c;那会每位同学基本都会买一套圆规、三角板&#xff0c;来辅助学习和做作业使用&#xff0c;这些学习工具在闲暇时光也被用来玩耍&#xff0c;偶然间就拿着圆规在纸上画…

【零散技术】10分钟学会 Odoo Widget many2many_tags的使用与拓展

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 1.基本使用 widget “many2many_tags”是我们常用的视图组件&#xff0c;使用后会badge形式展示数据&#xff0c;未使用widget则只显示 &#xff08;x记录&#xff09; 2.自定义显示内容 使用 many2many_tags后默认显示模型中的…

Oracle报错 PLS-00103: 出现符号 ““在需要下列之一时

在IDEA中执行以下SQL时&#xff0c;报了这个异常 检查了语法&#xff0c;你会发现语法没有任何问题&#xff0c;标点也没有任何问题。 罪魁祸首在这&#xff1a; 换行符为CRLF&#xff0c;我们需要改成LF 即可执行成功

护眼灯买什么样的好?分享五款护眼灯

护眼台灯的光照一般比较均匀&#xff0c;相比普通台灯&#xff0c;一般具有防蓝光、防频闪等功能&#xff0c;能够提供一个健康舒适的学习、生活灯光环境&#xff0c;建议选购内置智能感光模式的护眼台灯&#xff0c;以确保灯光亮度一直处于均衡状态&#xff0c;让眼睛更轻松。…

ARDUINO STM32 SSD1306

STM32F103XX系列SPI接口位置 在ARUDINO 下&#xff0c;&#xff08;不需要设置引脚功能&#xff0c;不需要开启时钟设置&#xff0c;ARDUINO已经帮我们处理了&#xff09; stm32f103c6t6 flash不足&#xff0c;不足以运行U8G2,产生错误 改用U8X8&#xff0c;后将字体改为u8x8_…

5V升压充电8.4V管理IC

在我们小家电设计当中USB口的5V输入升压到8.4V输出&#xff0c;使用一颗SOP8的升压充电芯片&#xff0c;直接升压到8.4V.电流在1A左右。2&#xff0c;USB输入&#xff0c;5V升压8.4V&#xff0c;充电1A&#xff0c;内含专门的双节锂电池充电管理逻辑和LED指示灯&#xff0c;我们…

大学生该怎么认清当下的就业环境呢?

大学生毕业后进入职场&#xff0c;面临的就业环境也在不断发生变化。为了更好地适应这个变化莫测的环境&#xff0c;大学生需要认清当下的就业环境&#xff0c;并做出相应的应对策略。 了解行业趋势&#xff0c;抓住就业机会 如今&#xff0c;各行各业的竞争日益激烈&#xff…

使用nps实现内网穿透

1、介绍 ​ 当我们想把内网的一些资源暴露在公网上时&#xff0c;可以使用内网穿透功能。比如公司的内网服务器&#xff0c;部署了平时需要开发的项目&#xff0c;但是回到家中无法访问&#xff0c;就可以使用内网穿透&#xff0c;将公司内网的接口映射到一台公网的服务器上&a…

现浇钢筋混泥土楼板施工岗前安全VR实训更安全高效

建筑行业天天与钢筋混凝土砼在&#xff0c;安全施工便成了企业发展的头等大事。 当今社会&#xff0c;人人都奉行生命无价&#xff0c;安全至上。可工地安全事故频繁发生&#xff0c;吞噬掉多少宝贵生命。破坏了多小个家庭?痛定死痛&#xff0c;为了提高施工人员的安全意识。 …

多目标优化

https://zhuanlan.zhihu.com/p/158705342 概念 单目标优化只有一个优化目标&#xff0c;所以可以比较其好坏。 但是多目标优化&#xff0c;在需要优化多个目标时&#xff0c;容易存在目标之间的冲突&#xff0c;一个目标的优化是以其他目标劣化为代价的&#xff0c;所以我们要…

CUDA小白 - NPP(2) -图像处理-算数和逻辑操作(2)

cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化&#xff0c;具体的可以参考别的博主的介绍&#xff0c;都比较详细。还有一些cuda中的专有名词的含义&#xff0c;可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus&#xf…