阿里巴巴NACOS(2)- 为Spring Cloud提供服务注册发现及配置

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 上一篇文章我们提到了什么是Nacos以及Nacos的简单部署和使用方法,同时也介绍了阿里云的微服务引擎 MSE,这篇文章打算介绍一下如何在Spring Cloud中集成Nacos,并分别用本地自己搭建的Nacos和用阿里云MSE创建的Nacos实例来提供服务注册和发现功能。

作者:阿里云 MVP郦强

1、使用Nacos提供服务发现功能

1)首先我们要做的是写一个微服务,公司打车🚖项目有一块需求是关于用户的相关功能,例如:用户注册、登录、获取用户信息等,这样我们就需要创建一个用户微服务项目。
郦强1.png

创建用户微服务 MemberServer

2)在配置文件中,我们要指定Nacos server的地址。

郦强2.png

指定 Nacos Server 地址

3)在代码中,通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能。

郦强3.png

开启 EnableDiscoveryClient 注解

通过上面3个步骤,我们就把用户的微服务写好了,接着,我们还是重复上面的步骤创建一个订单微服务,提供打车项目中提交订单、订单结算、查询、状态转换等服务。
郦强4.png

创建订单微服务


同样,我们在配置文件中,指定Nacos server的地址,同时使用注解@EnableDiscoveryClient 开启服务注册发现功能。 郦强5.png

配置 Nacos Server 地址


郦强6.png

开启 EnableDiscoveryClient 注解

然后我们启动两个服务,就可以看到在Nacos控制台中的显示了。
郦强7.png

运行的微服务在服务列表中可以查看到

同样我们也可以把上面两个服务的Nacos server地址改成 阿里云微服务引擎的MSE地址,再重新启动两个服务,服务就展示在MSE上了。

2、使用Nacos作为服务配置中心

我们在开发项目,到测试到最终发布一版要经历3个环境,每个环境的配置都是不一样的,这样我们可以把配置文件用Nacos来进行管理,动态更新。之前公司都是用Spring Cloud的Config配置中心来完成的,这次可以用Nacos了😊

郦强8.png

Nacos配置列表

郦强9.png

配置文件

不过遗憾的是,在写本文的时候,阿里云MSE暂时只支持Nacos的服务注册和发现,配置中心暂时还没有,需要加载项目中的配置还需要开通使用阿里云的ACM(应用配置管理),所以目前来看 Nacos = MSE + ACM ,希望阿里云早日在MSE的Nacos中集成配置中心。
郦强10.png

阿里云应用配置管理首页

郦强11.png

应用配置管理开通页面

郦强12.png

开通成功

郦强13.png

新建配置页

郦强14.png

配置管理首页

郦强15.png

支持批量导入配置文件

3、总结

通过上面的介绍相信你对Spring Cloud中如何使用Nacos应该很清楚了,而且如果您之前项目用的是Eureka或者是Consul,替换成Nacos是很方便的,只要在配置文件的server地址改一下相应的参数即可。下一篇文章将介绍 部署Nacos的生产集群环境。

首发于简书。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
13天前
|
Cloud Native Java Nacos
微服务时代的新宠儿!Spring Cloud Nacos实战指南,带你玩转服务发现与配置管理,拥抱云原生潮流!
【8月更文挑战第29天】Spring Cloud Nacos作为微服务架构中的新兴之星,凭借其轻量、高效的特点,迅速成为服务发现、配置管理和治理的首选方案。Nacos(命名和配置服务)由阿里巴巴开源,为云原生应用提供了动态服务发现及配置管理等功能,简化了服务间的调用与依赖管理。本文将指导你通过五个步骤在Spring Boot项目中集成Nacos,实现服务注册、发现及配置动态管理,从而轻松搭建出高效的微服务环境。
76 0
|
13天前
|
安全 Nacos 数据安全/隐私保护
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
本文详细介绍了如何在微服务环境下从 Nacos 1.3.0 升级到 2.3.0,并确保 Seata 各版本的兼容性。作者小米分享了升级过程中的关键步骤,包括备份配置、更新鉴权信息及验证测试等,并解答了常见问题。通过这些步骤,可以帮助读者顺利完成升级并提高系统的安全性与一致性。
57 8
升级指南:从Nacos 1.3.0 到 2.3.0,并兼容 Seata 的鉴权配置
|
15天前
|
Cloud Native Java Nacos
Spring Cloud Config、Apollo、Nacos和Archaius对比
这篇文章对比了Spring Cloud Config、Apollo、Nacos和Archaius这四种配置中心的适应场景、优缺点。文中讨论了它们的功能特点,例如Spring Cloud Config的集中化配置管理和动态刷新能力,Apollo的实时配置推送和权限治理,Nacos的服务发现和管理功能,以及Archaius的动态配置更新能力。文章指出选择配置中心应根据项目需求和架构来决定,并提供了一个对比图来帮助读者更直观地理解这些工具的差异。
30 1
Spring Cloud Config、Apollo、Nacos和Archaius对比
|
10天前
|
IDE Java 开发工具
还在为繁琐的配置头疼吗?一文教你如何用 Spring Boot 快速启动,让开发效率飙升,从此告别加班——打造你的首个轻量级应用!
【9月更文挑战第2天】Spring Boot 是一款基于 Spring 框架的简化开发工具包,采用“约定优于配置”的原则,帮助开发者快速创建独立的生产级应用程序。本文将指导您完成首个 Spring Boot 项目的搭建过程,包括环境配置、项目初始化、添加依赖、编写控制器及运行应用。首先需确保 JDK 版本不低于 8,并安装支持 Spring Boot 的现代 IDE,如 IntelliJ IDEA 或 Eclipse。
37 5
|
14天前
|
Java 微服务 Spring
Spring Cloud全解析:配置中心之解决configserver单点问题
但是如果该configserver挂掉了,那就无法获取最新的配置了,微服务就出现了configserver的单点问题,那么如何避免configserver单点呢?
|
11天前
|
Java Spring 开发者
解锁 Spring Boot 自动化配置的黑科技:带你走进一键配置的高效开发新时代,再也不怕繁琐设置!
【8月更文挑战第31天】Spring Boot 的自动化配置机制极大简化了开发流程,使开发者能专注业务逻辑。通过 `@SpringBootApplication` 注解组合,特别是 `@EnableAutoConfiguration`,Spring Boot 可自动激活所需配置。例如,添加 JPA 依赖后,只需在 `application.properties` 配置数据库信息,即可自动完成 JPA 和数据源设置。这一机制基于多种条件注解(如 `@ConditionalOnClass`)实现智能配置。深入理解该机制有助于提升开发效率并更好地解决问题。
23 0
|
11天前
|
Java Spring 开发者
Spring 框架配置属性绑定大比拼:@Value 与 @ConfigurationProperties,谁才是真正的王者?
【8月更文挑战第31天】Spring 框架提供 `@Value` 和 `@ConfigurationProperties` 两种配置属性绑定方式。`@Value` 简单直接,适用于简单场景,但处理复杂配置时略显不足。`@ConfigurationProperties` 则以类级别绑定配置,简化代码并更好组织配置信息。本文通过示例对比两者特点,帮助开发者根据具体需求选择合适的绑定方式,实现高效且易维护的配置管理。
25 0
|
13天前
|
缓存 Java 数据库连接
Spring Boot 资源文件属性配置,紧跟技术热点,为你的应用注入灵动活力!
【8月更文挑战第29天】在Spring Boot开发中,资源文件属性配置至关重要,它让开发者能灵活定制应用行为而不改动代码,极大提升了可维护性和扩展性。Spring Boot支持多种配置文件类型,如`application.properties`和`application.yml`,分别位于项目的resources目录下。`.properties`文件采用键值对形式,而`yml`文件则具有更清晰的层次结构,适合复杂配置。此外,Spring Boot还支持占位符引用和其他外部来源的属性值,便于不同环境下覆盖默认配置。通过合理配置,应用能快速适应各种环境与需求变化。
26 0
|
Java Spring 数据库
Spring服务定制
问题总述 ​ 我们都知道如果使用Spring来进行bean管理的时候。如果同一个接口的实现类存在两个,直接使用@Autowired注解来实现bean注入,会在启动的时候报异常。我们通常的做法是使用@Resource注解来执行bean的名称。
888 0
|
21天前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决