Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)

gateway动态路由nacos配置中心路由配置spring-cloud-alibaba 解决nacos config配置不生效问题 解决nacos版本问题 使用最新版本的 sping cloud alibaba 2.2.1和spirng cloud Hoxton.SR4发现版本不兼容,nacos 修改配置文件是可以收到修改消息但不将修改后信息注入spirng, 也就是说修改不生效,其实启动的时候就不能注入。将 sping cloud alibaba版本将至2.1.1.RELEASE就正常了。 以下是我的相关的jar 包信息 <spring-cloud.version>Hoxton.SR4</spring-cloud. 阅读详情

项目使用的Spring Cloud为Hoxton版本,Spring Boot为2.2.2.RELEASE版本

Spring Cloud入门系列汇总

序号内容链接地址
1Spring Cloud入门-十分钟了解Spring Cloudhttps://blog.youkuaiyun.com/ThinkWon/article/details/103715146
2Spring Cloud入门-Eureka服务注册与发现(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103726655
3Spring Cloud入门-Ribbon服务消费者(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103729080
4Spring Cloud入门-Hystrix断路器(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103732497
5Spring Cloud入门-Hystrix Dashboard与Turbine断路器监控(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103734664
6Spring Cloud入门-OpenFeign服务消费者(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103735751
7Spring Cloud入门-Zuul服务网关(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103738851
8Spring Cloud入门-Config分布式配置中心(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103739628
9Spring Cloud入门-Bus消息总线(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103753372
10Spring Cloud入门-Sleuth服务链路跟踪(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103753896
11Spring Cloud入门-Consul服务注册发现与配置中心(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103756139
12Spring Cloud入门-Gateway服务网关(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103757927
13Spring Cloud入门-Admin服务监控中心(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103758697
14Spring Cloud入门-Oauth2授权的使用(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103761687
15Spring Cloud入门-Oauth2授权之JWT集成(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103763364
16Spring Cloud入门-Oauth2授权之基于JWT完成单点登录(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103766368
17Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103769680
18Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103770879
19Spring Cloud入门-Seata处理分布式事务问题(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103786102
20Spring Cloud入门-汇总篇(Hoxton版本)https://blog.youkuaiyun.com/ThinkWon/article/details/103786588

摘要

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Nacos 作为其核心组件之一,可以作为注册中心和配置中心使用,本文将对其用法进行详细介绍。

Nacos简介

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

Nacos 具有如下特性:

  • 服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求;
  • 动态配置服务:动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置;
  • 动态 DNS 服务:动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务;
  • 服务及其元数据管理:支持从微服务平台建设的视角管理数据中心的所有服务及元数据。

使用Nacos作为注册中心

安装并运行Nacos

我们先从官网下载Nacos,这里下载的是nacos-server-1.1.4.zip文件,下载地址:https://github.com/alibaba…

配置JAVA_HOME环境变量,不配置会导致无法运行Nacos;

JAVA_HOME=C:\develop\Java\jdk1.8.0_191

解压安装包,直接运行bin目录下的startup.cmd;

运行成功后,访问http://localhost:8848/nacos可以查看Nacos的主页,默认账号密码都是nacos。

在这里插入图片描述

创建应用注册到Nacos

我们通过改造consul-user-service和consul-ribbon-service来演示下服务注册与发现的功能,主要是将应用原来的Consul注册中心支持改为Nacos注册中心支持。

创建nacos-user-service模块和nacos-ribbon-service模块;

如果要使用Spring Cloud Alibaba 的组件都需要在pom.xml中添加如下的配置;

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

修改相关依赖,把原来的Consul注册发现的依赖改为Nacos的:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

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

修改配置文件application.yml,将Consul的注册发现配置改为Nacos的:

server:
  port: 8206

spring:
  application:
    name: nacos-user-service
  cloud:
    nacos:
      discovery:
        # 配置Nacos地址
        server-addr: http://localhost:8848

management:
  endpoints:
    web:
      exposure:
        include: '*'

运行两个nacos-user-service和一个nacos-ribbon-service,在Nacos页面上可以看到如下信息:

在这里插入图片描述

负载均衡功能

由于我们运行了两个nacos-user-service,而nacos-ribbon-service默认会去调用它的接口,我们调用nacos-ribbon-service的接口来演示下负载均衡功能。

多次调用接口:http://localhost:8308/user/1 ,可以发现两个nacos-user-service的控制台交替打印如下信息。

2019-12-30 17:06:51.645  INFO 8608 --- [nio-8206-exec-1] c.j.s.controller.UserController          : 根据id获取用户信息,用户名称为:jourwon

使用Nacos作为配置中心

我们通过创建nacos-config-client模块,并在Nacos页面中添加配置信息来演示下配置管理的功能。

创建nacos-config-client模块

在pom.xml中添加相关依赖:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<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>

添加配置文件application.yml,启用的是dev环境的配置:

spring:
  profiles:
    active: dev

添加配置文件bootstrap.yml,主要是对Nacos的作为配置中心的功能进行配置:

server:
  port: 9101

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        # Nacos地址
        server-addr: http://localhost:8848
      config:
        # Nacos地址
        server-addr: http://localhost:8848
        # 这里我们获取的yaml格式的配置
        file-extension: yaml

创建ConfigClientController,从Nacos配置中心中获取配置信息:

@RefreshScope
@RestController
public class ConfigClientController {

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/configInfo")
    public Object getConfigInfo() {
        return configInfo;
    }


}

在Nacos中添加配置

我们先来讲下Nacos中的dataid的组成格式及与SpringBoot配置文件中的属性对应关系:

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

比如说我们现在要获取应用名称为nacos-config-client的应用在dev环境下的yaml配置,dataid如下:

nacos-config-client-dev.yaml

按照以上dataid添加如下配置:

config:
  info: "config info for dev"

填写配置示意图:

在这里插入图片描述

启动nacos-config-client,调用接口查看配置信息:http://localhost:9101/configInfo

config info for dev

Nacos的动态刷新配置

我们只要修改下Nacos中的配置信息,再次调用查看配置的接口,就会发现配置已经刷新,Nacos和Consul一样都支持动态刷新配置。当我们在Nacos页面上修改配置并发布后,应用会刷新配置并打印如下信息

2019-12-30 17:11:39.736  INFO 17640 --- [-localhost_8848] o.s.c.e.event.RefreshEventListener       : Refresh keys changed: [config.info]

参考资料

Spring Cloud Alibaba 官方文档:https://github.com/alibaba…

使用到的模块

springcloud-learning
├── nacos-config-client -- 用于演示nacos作为配置中心的nacos客户端
├── nacos-user-service -- 注册到nacos的提供User对象CRUD接口的服务
└── nacos-ribbon-service -- 注册到nacos的ribbon服务调用测试服务

项目源码地址

GitHub项目源码地址

Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本) 我们可以自定义通用的限流处理逻辑,然后在@SentinelResource中指定。创建CustomBlockHandler类用于自定义限流处理逻辑:return new Result(“自定义限流信息”, 200);在RateLimitController中使用自定义限流处理逻辑:/**自定义通用的限流处理逻辑*/return new Result(“限流成功”, 200);熔断功能。 阅读详情

相关推荐

Spring Cloud入门-汇总篇(Hoxton版本)

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!

2401_83916204的博客 1055

Spring Cloud Alibaba:Nacos 作为注册中心和配置中心使用

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Nacos 作为其核心组件之一,可以作为注册中心和配置中心使用,本文将对其用法进行详细介绍。Nacos简介 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 具有如下特性:服务发现和服务健康监测:支持基于DNS...

macrozheng的专栏 3584

CentOS7下快速修复libssl.so.1.1缺失问题(附腾讯云镜像加速下载)

本文详细介绍了在CentOS7系统中快速修复libssl.so.1.1缺失问题的工程化实践方案。通过编译安装OpenSSL 1.1.x版本、配置动态链接器及创建符号链接等步骤,有效解决共享对象文件缺失问题,并提供了腾讯云镜像加速下载的优化方案,帮助开发者高效部署现代应用。

weixin_33711647的博客 369

支持Nacos 2.1.0!这套Spring Cloud Gateway + Oauth2 微服务权限终极解决方案升级了!

最近经常有小伙伴问我关于在微服务中使用Oauth2的问题,其实之前已经写过一篇相关文章了。这次抽空把之前文章中的Demo给升级了,支持了最新版的Spring Cloud和Nacos。今天再来介绍下这套微服务权限终极解决方案,希望对大家有所帮助!...

macrozheng的专栏 1067

手推反向传播+numpy实现

反向传播的重要性不必多说,手推也是必备基础,大厂面试要求用numpy实现一下BP也是经常的事。下面以一个简单的两层网络为例(简单到连bias都没有的那种),真·手推反向传播+numpy实现。 说明: input:输入 net_h:隐层 S(x):sigmoid简写 SD(x):sigmoid导数的简写 out_h:隐层经过sigmoid激活的输出 net_o:输出层 out_o:经过经过sigmoid激活的输出层,也就是最后的输出 target(简写t1、t2):Ground...

xian0710830114的专栏 1238

Mac用户看过来!M1/M2芯片安装CiteSpace完整指南(从Homebrew到成功运行)

本文为Mac M1/M2芯片用户提供CiteSpace安装的完整指南,从Homebrew安装适配的Java环境到最终成功运行CiteSpace。详细步骤包括环境检查、Java配置、CiteSpace下载与优化,解决常见问题如内存分配、图形渲染和中文显示乱码,确保科研人员能顺利使用这一文献可视化工具。

weixin_42530458的博客 308

spring cloud Alibaba系列(一)nacos配置中心使用详解

简介 spring cloud Alibaba是spring cloud的一个子项目,听过了微服务开发的一整套企业级解决方案;包含了微服务开发的必要组件是阿里的微服务解决方案 nacos简介:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 1.Nacos服务端搭建 nacos下载地址:h...

qq_38130094的博客 1631

怎么定位K8s容器中运行的JAVA程序OOM异常(一)

一.前置环境 1. 运行在k8s集群上的Pod服务(Java程序) 2. MAT分析工具 二.利用Jmap工具导出Heap Dump 1.执行命令进入pod容器 kubectl exec -itn {namespace} {pod}} sh 2.利用jmap生成java程序的Dump文件 jps | grep {jar} ./jmap -dump:live,format=b,file=haep.hprof 8 3.利用k8s命令导出Dump文件到本地 kubectl cp -n

计算科学 3013

SpringCloud - 配置中心

微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。

m0_66689823的博客 5972

win2012没有远程桌面授权服务器可以提供许可证 如何远程

如果远程windows服务器时,提示“没有远程桌面授权服务器可以提供许可证 如何远程”,先通过以下方式进行强制登录,然后在对服务器进行设置即可,延期使用。 强制登录服务器方式; 1、运行—输入:mstsc /admin /v ip:端口 回车即可 2、进入远程桌面,输入 ip:端口 /admin 例如:mstsc /admin /v 192.168.0.131:23568 进入服务器以后,按照以下步骤进行设置即可: ...

蜗牛快爬 1万+

Python实现商品价格监控与波动分析爬虫项目

本文通过完整的代码示例和详细的技术讲解,展示了如何实现商品价格的自动监控和波动分析。该项目不仅适用于个人购物助手,还可以扩展为商家的竞品监控工具。通过结合数据抓取、存储、分析与可视化,能够帮助我们更好地理解市场趋势并做出优化决策。

2201_76125261的博客 1743

SpringCloud 配置中心【Nacos_Config】

前言。

m0_63300795的博客 3020

UNet改进(54):当医学图像分割遇上频域学习与自监督

本文提出了一种改进U-Net的方法,通过频域增强模块和代理任务模块提升医学图像分割性能。频域增强模块在傅里叶空间对特征图进行可学习的频率调制,重点增强高频细节特征;代理任务模块通过图像重建约束编码器保留关键信息。两个模块协同工作,在仅增加5%参数量的情况下,形成空间域、频域和重建约束三条互补的信息路径。该方法特别适用于需要精细边缘分割的医学图像任务,预期能提升5%-10%的边缘分割精度,在小样本场景效果更显著。部署时可移除代理任务模块,不影响推理效率。未来可探索空间自适应频域调制和更丰富的代理任务设计。

2501_91516851的博客 227

java 实现 注册中心_Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)

文章目录摘要Nacos简介使用Nacos作为注册中心安装并运行Nacos创建应用注册到Nacos负载Java项目使用的Spring Cloud为Hoxton版本,Spring Boot为2.2.2.RELEASE版本Spring Cloud入门系列汇总摘要Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Nacos 作为其核心组件之一,可以作为注册中心和配置中心使用,...

weixin_36452281的博客 246

自定义模型训练——打造专属OpenClaw模型(2026AI版)

本文介绍了OpenClaw自定义模型训练的核心流程,包括框架选择(PyTorch、TensorFlow、HuggingFace和原生OpenClaw框架)、训练环境搭建脚本、以及数据收集系统的设计。数据收集器支持从数据库、API、文件和网络等多种来源获取训练数据,并提供灵活的过滤机制确保数据质量。通过这套系统,开发者可以高效准备训练数据,为后续模型训练打下坚实基础。

博客 877

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【Spring Cloud Alibaba】【Hoxton】Nacos 入门-配置中心-集群

1 简介 1.1 名字由来 前四个字母分别別为 Naming和 Configurate的前两个字,最后的s为 Service… 1.2 是什么 (1) ー个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 (2) Nacos=Eureka+Config+Bus。 (3) 替代Eureka做服务注册中心。替代Config做服务配置中心。 1.3 下载地方 https://github.c...

qq_34125999的博客 4329

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Spring Cloud Alibaba 与 Nacos 实战:注册中心 + 配置中心 + 集群搭建

本文从系统架构演变入手,讲解了 Spring Cloud、Spring Cloud Alibaba 的核心概念,重点实战了 Nacos 注册中心、配置中心的使用,以及 Nacos 集群搭建和持久化改造。Nacos 作为一站式微服务基础设施,简化了微服务的服务治理和配置管理,是 Spring Cloud Alibaba 生态的核心组件,掌握其使用与部署对微服务开发至关重要。

小旭9527的博客 1125

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Spring Cloud Alibaba Nacos (Hoxton版) 使用

文章目录1. 简介2. 安装3. 使用3.1 注册中心3.1.1 user-service3.1.2 ribbon-service3.2 配置中心 Spring Cloud Hoxton.SR4 Spring Cloud Alibaba 2.2.2.RELEASE Spring Boot 2.3.0.RELEASE 1. 简介 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案,Nacos 作为其核心组件之一,可以作为注册中心和配置中心使用。 Nacos 致力于帮助您发现

shpunishment的博客 638

maven 之 Spring Cloud Starter Alibaba Nacos Discovery

注意:有2个groupId,一个是org.springframework.cloud,一个是 org.springframework.cloud <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-alibaba-nacos-discovery --> <dependency> <groupId>org.springframework.clou

m0_45406092的博客 5684
上一篇: Spring Cloud入门-Oauth2授权之基于JWT完成单点登录(Hoxton版本)
下一篇: Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)
RyanJohnson
RyanJohnson 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 30万+粉丝 285原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值