“基于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

1.2 安装 Nacos

1.3 部署服务

二、Spring Cloud Alibaba 的依赖配置

2.1引入依赖

2.2 配置文件

三、Spring Cloud Alibaba 的使用

3.1 服务注册和发现

3.2 配置管理

四、总结


一、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.2Pinia 2.0.0-rc.4Ant-Design-Vue 2.2.6TypeScript 的大型中后台解决方案。
其中前端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 的微服务平台

MateCloud 4.0.8 正式版发布, 基于Spring Cloud Alibaba 的微服务平台

MateCloud 4.0.8 正式版发布, 基于Spring Cloud Alibaba 的微服务平台