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

相关推荐
2501_933329551 天前
企业舆情处置实战:Infoseek数字公关AI中台技术架构与功能解析
大数据·人工智能·架构·数据库开发
Kel1 天前
LangChain.js 架构设计深度剖析
人工智能·设计模式·架构
俺爱吃萝卜1 天前
Spring Boot 3 + JDK 17:新一代微服务架构最佳实践
java·spring boot·架构
光影少年1 天前
Monorepo架构是什么,如何学习Monorepo架构?
前端·学习·架构·前端框架
张忠琳1 天前
【openclaw】OpenClaw Flows 模块超深度架构分析
ai·架构·vllm
gyx_这个杀手不太冷静1 天前
大人工智能时代下前端界面全新开发模式的思考(六)
前端·架构·ai编程
2603_954708311 天前
交直流混合微电网架构:拓扑优化与功率交互设计
人工智能·分布式·物联网·架构·系统架构·能源
风曦Kisaki1 天前
#企业级网络架构Day01:网络概述,网络参考模型,交换机命令行
网络·架构·智能路由器
147API1 天前
多模型 fallback 怎么设计?一个可落地的简化架构
人工智能·架构·大模型api
ToddyBear1 天前
深入Anthropic Claude AI的记忆模块的设计思想和架构
人工智能·架构