【笑小枫】SpringBoot + Nacos 整合

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【笑小枫】SpringBoot + Nacos 整合

环境配置


  • JDK8
  • SpringBoot:2.3.12.RELEASE
  • nacos:2.0.3

安装Nacos


下载地址:https://github.com/alibaba/nacos/releases/tag/2.0.3

本文使用的是2.0.3版本

1a1296fd4d574b078b6d0a13a127ba04.png

以下文章以windows系统为例:

下载后解压到对应的文件夹中,解压后目录如下:


49e44e81b6ec478280fcada5c1668aa1.png


在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力。我们此处采用mysql的方式:


在conf目录下找到nacos-mysql.sql文件,并在我们本地的数据库(需要安装mysql)中执行。


c10a90d403ad41f8a13d05e1d11bf44b.png


执行完脚本,生成数据库如下:


d1bb7efd4aa24957a43e6112e434cac6.png


我们需要修改conf目录下的application.properties配置文件。连接我们自己的数据库

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=Zhang123


363f785b29be40c4af86b1016ca70298.png


到此,nacos在windows环境的下载与安装就完成了。


启动Nacos


在bin目录下,有启动nacos的startup.cmd文件,我们这边创建的是单机环境,所以使用单机版的启动命令


windows启动命令为cmd startup.cmd -m standalone


集群的启动命令为:cmd startup.cmd -m cluster


每次执行命令启动,显然不符合懒惰的我,我们简单封装一个脚本


创建一个windons的批处理文件startstandalone.bat,代码如下:

./startup.cmd -m standalone


创建后,放在和startup.cmd同一个目录下,然后双击执行startstandalone.bat文件就可以了。


36ebb436ce8a4431bd70ac45bc270df5.png

到此,nacos就启动成功了。


配置Nacos


nacos服务启动后,访问如下网址:

http://127.0.0.1:8848/nacos/index.html#/login


b935712a09ac4d64803592a5f9f3e624.png

用户名:nacos 密码:nacos

登录后可以以下页面(新建的应该是空的,我的这个进行过一些配置)


fd905fb1dad24eeba85fd8c5acbaadb9.png


简单的说说,使用Nacos当配置中心的简单配置

在配置管理-配置列表进行新增配置,如下图所示:


bbe7c118835a49588876af7f39957d49.png

点图中的加号,就可以创建对应的配置


4c7adc8b2484485faa734da329271ef3.png


根据项目需求,可以创建多个命名空间


b6a715e18119430f9f8e535d9b932011.png

创建后展示的效果如下:

e03ae7b5579b4a60b7759f05bae34351.png


SpringBoot继承Nacos作为配置中心


首先创建一个SpringBoot项目,这里不做过多的赘述,详情可参考:

添加nacos配置


25e459f3be98424dbfebf226e89c9401.png


在pom.xml中引入依赖,注意,和alibaba Cloud的引入方式不同,这里只是单服务的SpringBoot项目

<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>0.2.10</version>
</dependency>


简单点的配置(不推荐)


在application.java的启动项上添加注解


@NacosPropertySource(dataId = "maple-admin", autoRefreshed = true)

在application.properties配置文件添加配置

spring.application.name=maple-admin
server.port=8888
nacos.config.server-addr=127.0.0.1:8848
nacos.config.namespace=dev


编写测试类

import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author 笑小枫
 * @date 2021/11/24
 */
@RestController
@RequiredArgsConstructor
public class DemoController {
    @Value("${test:bbb}")
    private String test;
    @GetMapping("/get")
    public String get() {
        return test;
    }
}


请求返回


详细的配置(推荐)


调整application.properties配置文件为application.yml(非必须操作,只是我比较喜欢用yml格式,可以忽略哈)


server:
  port: 8888
spring:
  application:
    name: maple-admin
nacos:
  config:
    bootstrap:
      # 开启预加载配置
      enable: true
    # nacos的ip地址和端口
    server-addr: 192.168.1.2:8848
    # nacos登录用户名
    username: nacos
    # nacos登录密码
    password: nacos
    # nacos命名空间id为 dev
    namespace: dev
    # 创建的配置的data-id,多个配置使用”,“隔开
    data-ids: maple-admin, maple-admin-mysql
    # 创建的配置的group
    group: DEFAULT_GROUP
    # 配置文件的后缀名
    type: YAML
    # 自动刷新配置
    auto-refresh: true
    # 长轮询的重试次数
    max-retry: 10
    # 重试间隔时间
    config-retry-time: 2000
    # 长轮询的超时时间
    config-long-poll-timeout: 46000


配置对应的nacos的配置如下图所示:


b888ec9a00e94cb2afea667c2d787a81.png


测试的方式同上,注意不同的namespace和data-ids


如果需要实时的刷新配置,可以使用@NacosValue注解,设置autoRefreshed=true,默认false

@NacosValue(value = "${test:bbb}",autoRefreshed = true)

写在最后

本文到这里结束了,喜欢的朋友关注一下我呦,大伙的支持,就是我坚持写下去的动力。

后续文章会陆续更新,文档会同步在CSDN和GitHub保持同步更新。

CSDN:https://zhangfz.blog.csdn.net

GitHub文档:https://github.com/hack-feng/Java-Notes

GitHub源码:https://github.com/hack-feng/Spring-Cloud-Edgware.git

笑小枫名片搭建源码:https://gitee.com/hack-feng/xiaoxiaofeng

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6月前
|
Dubbo Java 应用服务中间件
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用
|
6月前
|
Java Nacos Maven
从零搭建微服务架构:Spring Boot与Nacos完美整合
从零搭建微服务架构:Spring Boot与Nacos完美整合
1549 0
|
3月前
|
Cloud Native Java Nacos
微服务时代的新宠儿!Spring Cloud Nacos实战指南,带你玩转服务发现与配置管理,拥抱云原生潮流!
【8月更文挑战第29天】Spring Cloud Nacos作为微服务架构中的新兴之星,凭借其轻量、高效的特点,迅速成为服务发现、配置管理和治理的首选方案。Nacos(命名和配置服务)由阿里巴巴开源,为云原生应用提供了动态服务发现及配置管理等功能,简化了服务间的调用与依赖管理。本文将指导你通过五个步骤在Spring Boot项目中集成Nacos,实现服务注册、发现及配置动态管理,从而轻松搭建出高效的微服务环境。
256 0
|
9天前
|
Dubbo Java 应用服务中间件
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
23 1
|
3月前
|
Cloud Native Java Nacos
Spring Cloud Config、Apollo、Nacos和Archaius对比
这篇文章对比了Spring Cloud Config、Apollo、Nacos和Archaius这四种配置中心的适应场景、优缺点。文中讨论了它们的功能特点,例如Spring Cloud Config的集中化配置管理和动态刷新能力,Apollo的实时配置推送和权限治理,Nacos的服务发现和管理功能,以及Archaius的动态配置更新能力。文章指出选择配置中心应根据项目需求和架构来决定,并提供了一个对比图来帮助读者更直观地理解这些工具的差异。
86 1
Spring Cloud Config、Apollo、Nacos和Archaius对比
|
3月前
|
运维 Java Nacos
Spring Cloud应用框架:Nacos作为服务注册中心和配置中心
Spring Cloud应用框架:Nacos作为服务注册中心和配置中心
|
3月前
|
Dubbo Java Nacos
【实战攻略】破解Dubbo+Nacos+Spring Boot 3 Native打包后运行异常的终极秘籍——从零开始彻底攻克那些让你头疼不已的技术难题!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但使用Dubbo+Nacos+Spring Boot 3进行GraalVM native打包后常遇运行异常。本文剖析此问题及其解决策略:确认GraalVM版本兼容性;配置反射列表以支持必要类和方法;采用静态代理替代动态代理;检查并调整配置文件;禁用不支持的功能;利用日志和GraalVM诊断工具定位问题;根据诊断结果调整GraalVM配置。通过系统排查方法,能有效解决此类问题,确保服务稳定运行。
97 0
|
5月前
|
Java Nacos 数据格式
Spring Cloud Nacos 详解:服务注册与发现及配置管理平台
Spring Cloud Nacos 详解:服务注册与发现及配置管理平台
199 3
|
4月前
|
消息中间件 Java 数据库连接
理解java的springboot+mybatisplus+dubbo+nacos+kafka这一套技术栈
理解java的springboot+mybatisplus+dubbo+nacos+kafka这一套技术栈
88 0
|
5月前
|
Java Nacos 微服务
Spring Cloud微服务在Windows本地开发时禁用Nacos注册中心注册
Spring Cloud微服务在Windows本地开发时禁用Nacos注册中心注册