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

相关推荐
小猿姐5 小时前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
只会cv的前端攻城狮9 小时前
DSL 领域模型架构设计:消灭 CRUD 重复工作
前端·架构
禅思院13 小时前
路由性能优化终极指南:从懒加载漏洞到边缘渲染的架构跃迁
前端·架构·前端框架
怕浪猫13 小时前
Electron 系列文章封面图
算法·架构·前端框架
王二端茶倒水14 小时前
从千兆到万兆:小区、园区、酒店网络运营该怎么升级?
架构
喵个咪14 小时前
技术复盘:基于 go-wind-cms 的官网+商城双业务渐进拆分实战
后端·架构·go
ZengLiangYi14 小时前
批量导入 1000 条对话的性能优化实战
javascript·后端·架构
阿里云云原生1 天前
深入内核:拆解 OpenTelemetry eBPF 探针如何优雅地“透视”多语言微服务?
云原生
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
东方佑1 天前
FRSM 规模效应与架构对比补充报告
架构