使用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会检测是否发生改变,如果没有是不会再次发布的。

相关推荐
Java编程爱好者9 分钟前
字节二面:被问“大模型知识过时了怎么解?”,我答“微调”,面试官当场黑脸:“听说过 RAG 吗?”
架构
葫芦的运维日志4 小时前
从手动部署到GitOps只需四步
架构
sumuve4 小时前
从100行到1行:我是如何重构IoT设备实时数据通信的?
架构·响应式设计
koddnty5 小时前
c++协程控制流深入剖析
后端·架构
Mintopia5 小时前
Vite 与 Uni-App X 的协作原理:从前端开发到多端运行的桥梁
架构
louiX21 小时前
深入理解 Android BLE GATT 回调机制:从“回调地狱”到高可靠 OTA 架构
架构
aircrushin1 天前
轻量化大模型架构演进
人工智能·架构
天蓝色的鱼鱼1 天前
你的项目真的需要SSR吗?还是只是你的简历需要?
前端·架构
文心快码BaiduComate1 天前
百度云与光本位签署战略合作:用AI Agent 重构芯片研发流程
前端·人工智能·架构
JavaTalks1 天前
高并发保护实战:限流、熔断、降级如何配合落地
后端·架构·设计