使用Nacos将单体服务注册成微服务的步骤以及相关问题解决

目录

1.改造单体服务的配置文件。

2.添加Nacosw相关的pom依赖

3.在nacos的配置列表中创建配置列表

4.相关问题的解决


1.改造单体服务的配置文件。

🔖创建一个bootstrap.yml的配置文件该文件通常放置在src/main/resources目录中,并且优先于application.yml或application.properties文件加载

javascript 复制代码
# Tomcat
server:
  port: 9507
# Spring
spring: 
  application:
    # 应用名称
    name: guns-data-quality
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
2.添加Nacosw相关的pom依赖
XML 复制代码
    <dependencies> 
<!-- SpringCloud Openfeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <!-- feign okhttp -->
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-okhttp</artifactId>
        </dependency>

        <!-- SpringCloud Loadbalancer -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>


        <!-- SpringCloud Alibaba Nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!-- SpringCloud Alibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!-- SpringCloud Alibaba Sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

        <!-- SpringBoot Actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
  </dependencies>
3.在nacos的配置列表中创建配置列表

点击最右侧的 + 号进行配置文件的创建,填入Data ID(建议按照一定规则命名Data ID,例如按照应用名称、模块名称、业务名称等维度进行命名);Group(填入对应的分租名称。)

最后在配置内容中,将之前的application.yml等的配置文件内容可以写入进去,

需要注意的是在配置数据库连接的时候,不要直接复制进入,因为两者的语法配置略有不同

bash 复制代码
spring:
  datasource:
    dynamic:
      datasource:
        master:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=true&serverTimezone=UTC
          username: ***
          password: ***

最后点击发布

4.相关问题的解决

3.1.发布之后无法找到数据源,可能是你的配置语法有问题,导致配置没有生效,有效办法将其他的和启动无关的配置删除,保留数据库配置逐一排除。

3.2.数据库版本错误,升级数据库版本即可.

3.3.在public上面发布能正常启动项目,当时在其他命令空间导入相同的配置文件发布相同的配置的时候项目启动失败。原因是不同的命令空间保存到的数据库是一样的,所以在第一次发布的时候会保存到nacos数据库,如何不改变文件内容,再次点击发布,nacos会检测是否发生改变,如果没有是不会再次发布的。

相关推荐
leijiwen5 小时前
Bsin-PaaS(毕昇)——LinkLifeVerse OS 的产业智能工程底座
云原生·云计算·paas
mCell6 小时前
你以为短链接只是 Hash + 301/302?
后端·算法·架构
记忆停留w7 小时前
从单体到微服务:Redis 协同 MySQL、Milvus、MinIO 搭建企业级RAG/AI Agent脚手架架构
大数据·人工智能·redis·微服务·ai·架构·milvus
财财源源7 小时前
.NET 程序保护实战系列01-流水线架构与保护引擎总览
架构·.net
KaMeidebaby8 小时前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
深圳恒讯9 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
龙亘川9 小时前
开源本地 AI 智能体网关 OpenClaw 深度实践:架构解析、全场景部署与自动化落地指南
人工智能·架构·开源·openclaw
数智化转型推荐官10 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
Sirius Wu12 小时前
OpenClaw(UpClaw)三层Tool全链路治理深度详解
网络·人工智能·架构·aigc