spring cloud Alibaba 的 Nacos学习笔记

文章目录

  • spring cloud Alibaba 的 Nacos学习笔记
    • 下载nacos
    • spring cloud Alibaba依赖
      • nacos-discovery依赖
      • nacos-config依赖
    • nacos-discovery的使用
      • 生产者application.yml配置
      • 生产者启动类
      • 生产者Controller
      • 消费者application.yml配置
      • 消费者的RestTemplate
      • 消费者的Controller
    • nacos-config的使用
      • bootstrap.properties配置
      • application.properties配置
      • 定位配置文件
      • 刷新配置
      • 数据模型

下载nacos

GitHub下载地址:Tags · alibaba/nacos (github.com)

下载安装都十分简单,下载下来解压,然后到bin目录运行那个startup文件即可。

GitHub开始介绍的使用方式

On the Linux/Unix/Mac platform, run the following command to start server with standalone mode:

sh startup.sh -m standalone

On the Windows platform, run the following command to start server with standalone mode. Alternatively, you can also double-click the startup.cmd to run NacosServer.

startup.cmd -m standalone

官网快速开始教程:Quick Start for Nacos

官方网站:home (nacos.io)

官方的示例控制台模样:

spring cloud Alibaba依赖

spring cloud Alibaba版本依赖可以去alibaba的github仓库的wiki查看:版本说明 · alibaba/spring-cloud-alibaba Wiki (github.com)

我这里用的spring cloud Hoxton版本所以依照官方文档的提示,我应该使用spring-cloud-alibaba-dependencies-2.2.6.RELEASE,也就是2.2.6.RELEASE版本的依赖。

如果需要使用 Spring Cloud Hoxton 版本,请在 dependencyManagement 中添加如下内容

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.6.RELEASE</version><type>pom</type><scope>import</scope>
</dependency>

nacos-discovery依赖

官方网站GitHub:Nacos discovery · alibaba/spring-cloud-alibaba Wiki (github.com)

<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

nacos-config依赖

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

nacos-discovery的使用

生产者application.yml配置

根据官网文档,nacos暴露的端口是8848

server:port: 8300spring:application:name: nacos-order-producercloud:nacos:discovery:server-addr: localhost:8848  #nacos-server的地址management:endpoints:web:exposure:include: *

生产者启动类

跟普通的服务发现应用一样,用注解@EnableDiscoveryClient开始服务发现功能。

@SpringBootApplication
@EnableDiscoveryClient        //开启服务发现
public class NacosProviderDemoApplication {public static void main(String[] args) {SpringApplication.run(NacosProducerDemoApplication.class, args);}
}

生产者Controller

@RestController
public class EchoController {@GetMapping(value = "/echo/{string}")public String echo(@PathVariable String string) {return "Hello Nacos Discovery " + string;}
}

消费者application.yml配置

消费者这边的配置跟生产者的配置没有什么太多改变

server:port: 8301spring:application:name: nacos-order-consumercloud:nacos:discovery:server-addr: localhost:8848  #nacos-server的地址

消费者的RestTemplate

nacos内置了ribbon做均匀负载,所以我们消费端使用ribbon做均匀负载。

创建RestTemplate的bean时,在上面添加@LoadBalanced注解。以开启均匀负载功能。

@Configuration
public class TemplateConfig {@Bean("restTemplate")@LoadBalancedpublic RestTemplate getrestTemplate(){return new RestTemplate();}
}

消费者的Controller

通过服务名调用消费端提供的服务,因为加了@LoadBalanced开启了均匀负载。

@RestController
@Slf4j
public class OrderController {private static final String PAMENT_URL = "http://nacos-order-producer";@Resourceprivate RestTemplate restTemplate;@GetMapping("/comsumer/echo/{string}")public String create(@PathVariable String string){return restTemplate.getForObject(PAMENT_URL+"/echo/"+string,String.class);}
}

nacos-config的使用

nacos除了使服务发现功能外还能作为配置中心进行工作。

bootstrap.properties配置

一点要使用bootstrap.yaml或者bootstrap.properties,bootstrap为系统级别的配置文件,优先级高最先加载,并且不会被application覆盖。

这里配置nocas server的地址即可。

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=example
#spring.cloud.nacos.config.file-extension: yaml #配置获取文件的后缀

application.properties配置

spring.profiles.active=dev

定位配置文件

根据官网的信息,如何定位要想要的配置文件呢,通过一些dataId去定位获取。

${prefix}-${spring.profiles.active}.${file-extension}
  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 propertiesyaml 类型。

刷新配置

根据官网的提示,nacos是会自动广播刷新配置的,我们利用spring cloud@RefreshScope注解进行配置刷新的验证。nacos相比传统的spring cloud bus +spring cloud config要好用很多。

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {@Value("${useLocalCache:false}")private boolean useLocalCache;@RequestMapping("/get")public boolean get() {return useLocalCache;}
}

数据模型

nocos有自己定义识别数据空间,可以通过三个维度的定位锁定指定的唯一的数据或配置文件。里面有写数据模型的结构:Nacos 架构

这里简单简述就是:命名空间(Namespace),分组(Group),数据ID(Service/DataId)

  • 默认命名空间名为:public
  • 默认分组名为:DEFAULT_GROUP

通过Namespace+Group+DataId锁定唯一的资源。如下配置:

#锁定资源nacos命名空间下的order分组下的nacos-order-consumer-dev.yaml文件
spring:application:name: nacos-order-consumercloud:nacos:config:server-addr: localhost:8848file-extension: yamlgroup: ordernamespace: nacosprofiles:active: dev

spring cloud Alibaba 的 Nacos学习笔记相关推荐

  1. Spring Cloud alibaba 使用Nacos服务发现

    Provider 服务端 服务端我们复用前篇Spring Cloud alibaba 使用Nacos配置中心的代码 修改启动类 在启动类上添加@EnableDiscoveryClient 注解 开启服 ...

  2. Spring Cloud Alibaba - 19 Nacos Config配置中心加载不同微服务的通用配置的两种方式

    文章目录 Pre 实现 方式一 通过 shared-dataids 方式 方式二 通过 ext-config方式 配置文件优先级 源码 Pre Spring Cloud Alibaba - 18 Na ...

  3. Spring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置

    文章目录 需求 实现 Step 1 Nacos Config 新增公共配置 Step 2 验证 配置文件优先级 源码 需求 举个例子,同一个微服务,通常我们的servlet-context 都是相同的 ...

  4. 谷粒商城微服务分布式基础篇二—— Spring Cloud Alibaba、Nacos注册与发现

    文章目录 Spring Cloud Alibaba--微服务开发 Spring Cloud Alibaba是什么?  主要功能  组件 为什么不使用Spring Cloud 使用 Nacos Disc ...

  5. Spring Cloud Alibaba 微服务详细笔记

    文章目录 SpringCloud 一.微服务概述 1.1.什么是微服务? 1.2.为什么是微服务? 1.3.架构演变 1.4.微服务的解决方案 二.什么是SpringCloud 2.1.官方定义 2. ...

  6. SpringCloud - Spring Cloud Alibaba 之 Nacos Discovery服务注册发现(三)

    阅读本文可先参考博文 https://blog.csdn.net/MinggeQingchun/article/details/125613600 https://blog.csdn.net/Ming ...

  7. Spring Cloud Alibaba 组件nacos安装使用

    文章目录 前言 正文 1.安装nacos(基于Docker) 1.1 软件的安装 1.2 映射配置文件的创建 1.3 数据库nacos表的创建 1.4 启动nacos 1.5 访问nacos控制台 2 ...

  8. 五Spring Cloud Alibaba基于Nacos构建分布式配置中心

      1.什么是Nacos 以下部分解释摘自于Nacos官方文档: Nacos 致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据 ...

  9. Spring Cloud——Spring Cloud Alibaba 2021 Nacos Config bootstrap 配置文件失效解决方案

    基本概念 微服务是基于Spring Cloud框架搭建的,Spring Cloud Config作为服务配置中心. 业务服务只配置服务名称.启用环境和config的URL地址,其他都配置在配置中心,例 ...

最新文章

  1. 【APICloud系列|3】开发APP对UI的一般性要求
  2. python excel xlwings_python excel神器xlwings
  3. python cryptography key加密_python3利用cryptography 进行加密和解密
  4. java -- 对Map按键排序、按值排序
  5. MODIS数据批量下载工具
  6. 宁波市重点首版次软件认定申报,区块链可申请 | 产业区块链发展周报
  7. ssm基于J2EE的办公用品管理系统
  8. 【Cubieboard2】配置编译内核支持SPI全双工通信驱动
  9. 论计算机技术在现代农业的应用,试论计算机技术在农业节水灌溉中的应用
  10. excel可以用python语言_用python打开excel的方法
  11. 电脑上如何卸载html5,电脑安装影子系统后卸载不了怎么办
  12. 计算机电脑维修 维修不求人,电脑维修不求人:电脑常见故障维修大全及解决方法...
  13. 如何解决网站限制IP访问的问题
  14. 华为计算机apk,华为手机助手安卓版apk
  15. java 入门专题 字符缓冲输入流HashMap 集合的简单综合应用:文本排序
  16. 微信屏蔽拼多多小红书等外链,连带屏蔽QQ音乐,连自家兄弟也不放过!
  17. 【Android Audio】dumpsys audio分析【不定期更新文章】
  18. Python 运算符及其优先级总结大全(新手必收藏)
  19. deeplearning简介
  20. 木马编程DIY (Delphi版) - 第3篇 星号密码查看工具

热门文章

  1. linux 命令(3)echo
  2. XNA 游戏 运行时编辑器
  3. 一个asp.net2005的页面文件调用CSS样式的BUG
  4. 从客户端(Content=EM STRONG U 这是测试这...)中检测到有潜在危险的Request.Form 值。...
  5. 解决Extjs中Combobox显示值和真实值赋值问题
  6. Activity功能控件
  7. mongodb远程连接配置(亲测)
  8. Python打断点(亲测)
  9. 从0开始搭建ELK及采集日志的简单应用
  10. PHP的运行机制与原理(底层)