“基于Spring Cloud Alibaba的微服务架构实战:Nacos配置管理“
Posted 陈书予
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“基于Spring Cloud Alibaba的微服务架构实战:Nacos配置管理“相关的知识,希望对你有一定的参考价值。
引言
Spring Cloud Alibaba 是 Spring Cloud 和 Alibaba 集团联合推出的开源微服务框架,旨在为 Java 开发者提供一种简单、易用、高效的微服务解决方案。Nacos 是一个面向云原生应用的动态服务发现、配置管理和服务管理平台,提供了服务注册与发现、配置管理、动态 DNS 服务、服务及流量管理等功能,是一个优秀的服务注册中心和配置中心。
本文将介绍 Spring Cloud Alibaba 整合 Nacos 的实战操作,包括 Nacos 的安装和部署,以及 Spring Cloud Alibaba 的依赖配置和使用。通过本文的学习,读者可以了解 Spring Cloud Alibaba 和 Nacos 的基本概念和使用方法,掌握微服务架构中服务注册和配置管理的基本技能。
目录
一、Nacos 的安装和部署
1.1 下载 Nacos
Nacos 官网提供了多种下载方式,包括源码编译、Docker 镜像、二进制包等,读者可以根据自己的需求选择下载方式。
这里我们选择下载二进制包的方式进行安装,可以在官网下载页面选择对应版本的压缩包进行下载。当前最新版本为 2.0.3,下载地址为:
Release 2.0.3 (July 28, 2021) · alibaba/nacos · GitHub
1.2 安装 Nacos
将下载好的压缩包解压到任意目录,进入解压目录下的 bin 目录,执行以下命令即可启动 Nacos:
sh startup.sh -m standalone
执行成功后,可以在浏览器中访问 http://localhost:8848/nacos,进入 Nacos 的控制台界面。
1.3 部署服务
在 Nacos 控制台界面中,可以创建服务、配置数据等。下面我们以创建服务为例进行演示。
点击左侧菜单栏的“服务管理”,在右侧页面中选择“新建服务”,填写服务名和服务地址等信息,点击“新建”按钮即可完成服务的创建。
二、Spring Cloud Alibaba 的依赖配置
2.1引入依赖
在项目的 pom.xml 文件中,添加 Spring Cloud Alibaba 的依赖配置:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Nacos 服务注册和发现 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Nacos 配置管理 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>php
<version>2.2.1.RELEASE</version>
</dependency>
</dependencies>
在这里,我们引入了 Spring Cloud Alibaba 的 Nacos 服务注册和发现以及配置管理的依赖。
2.2 配置文件
在项目的 application.properties 或 application.yml 文件中,添加 Nacos 相关的配置信息:
# Nacos 服务注册和发现
spring.cloud.nacos.discovery.server-addr=localhost:8848
# Nacos 配置管理
spring.cloud.nacos.config.server-addr=localhost:8848
spring.cloud.nacos.config.namespace=8f13df4e-fdc1-4a61-bfad-422d19b59f9a # 命名空间
spring.cloud.nacos.config.shared-dataids=example-config # 共享的配置文件 ID
spring.cloud.nacos.config.shared-dataids-refresh-interval=3000 # 共享的配置文件刷新间隔
在这里,我们配置了 Nacos 的服务地址、命名空间和共享的配置文件 ID 等信息。
三、Spring Cloud Alibaba 的使用
3.1 服务注册和发现
在 Spring Cloud Alibaba 中,可以通过 @EnableDiscoveryClient 注解启用服务注册和发现的功能。例如:
@SpringBootApplication
@EnableDiscoveryClient
public class ExampleServiceApplication
public static void main(String[] args)
SpringApplication.run(ExampleServiceApplication.class, args);
在这里,我们启用了服务注册和发现的功能,并使用 @SpringBootApplication 注解标记了应用程序的入口类。
3.2 配置管理
在 Spring Cloud Alibaba 中,可以通过 @RefreshScope 和 @Value 注解来实现配置管理的功能。例如:
@RestController
@RefreshScope
public class ExampleController
@Value("$example.config")
private String exampleConfig;
@GetMapping("/example")
public String getExampleConfig()
return exampleConfig;
在这里,我们使用 @RefreshScope 注解将 ExampleController 类标记为可刷新的 bean,使用 @Value 注解注入了 example.config 配置项的值。当配置项的值发生变化时,使用 @GetMapping 注解的 getExampleConfig 方法会返回最新的配置值。
四、总结
本文介绍了 Spring Cloud Alibaba 整合 Nacos 的实战操作,包括 Nacos 的安装和部署,以及 Spring Cloud Alibaba 的依赖配置和使用。通过本文的学习,读者可以了解 Spring Cloud Alibaba 和 Nacos 的基本概念和使用方法,掌握微服务架构中服务注册和配置管理的基本技能。
值得注意的是,在实际的开发中,可能会遇到更加复杂的微服务架构和业务场景。因此,读者在学习和使用 Spring Cloud Alibaba 和 Nacos 的过程中,应该根据具体的需求和场景进行合理的配置和使用,以达到最佳的效果和性能。
MateCloud 4.0.8 正式版发布, 基于Spring Cloud Alibaba 的微服务平台
MateCloud 4.0.8版本发布
基于Spring Cloud Alibaba推出的微服务快速开发平台,集成Nacos 2.0.3、Sentinel 1.8.2、Jetcache等诸多中间件。前端采用Vue3.2.2
、Pinia 2.0.0-rc.4
、 Ant-Design-Vue 2.2.6
、TypeScript
的大型中后台解决方案。
其中前端4.0.8-M1
版本已经发布,实现了系统管理的基础功能,主要包括菜单管理、用户管理、角色管理、部门管理、日志管理、客户端管理等功能。欢迎体验。
功能升级
- 修改角色时同时设置角色菜单和新增角色状态变更功能
- 返回的用户信息增加姓名和昵称
- 暂时屏蔽多租户过滤器
- 关闭防全表删除插件,增加清空日志功能
- 修改authorities为roleId优化token串的长度
- 角色功能扩展,增加分页功能、排序和状态字段
- 菜单管理增加组件功能,POST登录支持json报文
- 解决查询分页查询为空的bug
- 对同一个关键词多字段查询尝试新的写法,使其可读性更强
- 优化掉StringUtil采用Hutool工具类替换
- 优化掉一批使用低频的模块,4.0.8版本更加专注于业务功能
- 优化swagger配置类,简化代码
- knife4j增加自定义主页内容和页脚
- 新增seata starter模块代码
- 去掉已经优化的基础模块依赖dozer
依赖升级
- 升级至Spring Boot 2.5.3
- 升级至Knife4j 2.0.9
- 升级至Sentinel 1.82
- 升级至Elasticsearch 7.13.3
- 升级至Nacos 2.0.3
- 升级至Spring Boot Admin 2.5.0
全新的界面
|
|
技术架构
功能特点
- 主体框架:采用最新的Spring Cloud 2020.0.3, Spring Boot 2.5.3, Spring Cloud Alibaba 2021.1版本进行系统设计;
- 统一注册:支持Nacos作为注册中心,实现多配置、分群组、分命名空间、多业务模块的注册和发现功能;
- 统一认证:统一Oauth2认证协议,采用jwt的方式,实现统一认证,并支持自定义grant_type实现手机号码登录,第三方登录集成JustAuth实现微信、支付宝等多种登录模式;
- 业务监控:利用Spring Boot Admin来监控各个独立Service的运行状态。
- 内部调用:集成了Feign和Dubbo两种模式支持内部调用,并且可以实现无缝切换,适合新老程序员,快速熟悉项目;
- 业务熔断:采用Sentinel实现业务熔断处理,避免服务之间出现雪崩;
- 身份注入:通过注解的方式,实现用户登录信息的快速注入;
- 在线文档:通过接入Knife4j,实现在线API文档的查看与调试;
- 代码生成:基于Mybatis-plus-generator自动生成代码,提升开发效率,生成模式不断优化中,暂不支持前端代码生成;
- 消息中心:集成消息中间件RocketMQ和Kafka,对业务进行异步处理;
- 业务分离:采用前后端分离的框架设计,前端采用vue-element-admin,商业版采用antd-pro-vue
- 链路追踪:自定义traceId的方式,实现简单的链路追踪功能
- 多租户功能:集成Mybatis Plus,实现SAAS多租户功能
项目源码
前端源码:
后端源码:
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系以上是关于“基于Spring Cloud Alibaba的微服务架构实战:Nacos配置管理“的主要内容,如果未能解决你的问题,请参考以下文章
推荐一款基于Spring Cloud Alibaba 的微服务快速开发平台(MateCloud)
“基于Spring Cloud Alibaba的微服务架构实战:Nacos配置管理“
MateCloud 4.0.8 正式版发布, 基于Spring Cloud Alibaba 的微服务平台