【项目实战典型案例】26.nacos的命名空间名字和id不一致

简介: 【项目实战典型案例】26.nacos的命名空间名字和id不一致

一:背景介绍

现象

由于dev和localhost使用的同一个命名空间,我们多个服务相互调用的时候,由于开发人员本地启动把本地服务注册到和dev同一个命令空间下,导致dev环境部分功能不能使用(在线人员列表无法加载出数据)

原因

在创建命名空间名字和填写命名空间id的时候,两者不一致,但是出现该问题

二:SpringBoot项目与Nacos配置

1、Nacos服务端配置命名空间和yml文件

2、创建SpringBoot项目

在IDEA中左上角选择File-New-Project

因为我们要建立的是SpringBoot项目,所以需要选择Spring Initializr,填写项目的名称,配置jdk版本

在父pom.xml中添加spring boot、spring cloud、spring cloud alibaba三个依赖

<dependencyManagement>
  <dependencies>
    <!--spring boot,spring cloud,spring cloud alibaba-->
    <!--选用官网稳定的版本-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>2.3.12.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>Hoxton.SR12</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-alibaba-dependencies</artifactId>
      <version>2.1.2.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

修改父pom.xml中配置的Spring Boot版本(可能会出现版本不兼容的问题)

3、创建子服务

点击项目名NacosInstance-New-Module

要创建一个子服务都是普通的Maven项目,所以这里我们选择Maven-Next

输入新创建服务的名称和地址

这时项目中就多了一个名字叫order-Service-nacos的服务,需要添加其pom.xml文件中配置nacos依赖

<dependencies>
        <!-- nacos服务注册/发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--nacos配置中心来做配置管理-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
</dependencies>

在order-Service-nacos子服务的src文件夹中,选择【resources】右击新建一个yml配置文件,并进行nacos的配置

server:
  port: 9001
  servlet:
    context-path: /order-Service-nacos
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 81.70.2.8:8848
        namespace: arpro-dev
      config:
        server-addr: 81.70.2.8:8848
        namespace: arpro-dev
        prefix: arpro
        file-extension: yml
  application:
    name: order-nacos

4、Controller编写

在order-Service服务中按照下图的格式新建两个文件,分别为启动类和请求类(注意路径)

OrderController类中编写请求的逻辑代码

@RestController
@RequestMapping("/placeOrder")
@Controller
public class OrderController {
    @GetMapping("/order")
    public String placeOrder(){
        return "已下单";
    }
}

OrderServiceApplication类中编写程序启动逻辑

@SpringBootApplication
@EnableDiscoveryClient
public class OrderServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderServiceApplication.class, args);
    }
}

5、Tomcat启动程序

6、配置成功结果

三、总结

由此案例我们可以从中思考到:

  1. 修改的时候,两个不一致节省了多少时间?
  2. 两个一致会多花多少时间?
  3. 两个不一致会给我们带来哪些后期维护上的困扰
  4. 两个一致会给我们培养什么样的习惯?
  5. 计算如果不一致,每一位开发人员每次开发需要思考一下,计算不一致给我们带来时间上的消耗值


相关文章
|
7月前
|
Dubbo 关系型数据库 MySQL
nacos常见问题之命名空间配置数据上线修改如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
388 1
|
4月前
|
缓存 Cloud Native Java
【紧急救援】Nacos配置上线后失效?手把手教你如何轻松搞定命名空间修改难题!
【8月更文挑战第15天】Nacos是关键的云原生服务管理平台,用于动态服务发现与配置管理。但在使用其管理微服务配置时,可能会遇到命名空间内的配置更新后不生效的问题。本文探讨此问题并提供解决方案。首先需确认Nacos服务器运行正常及客户端正确连接。接着检查客户端缓存配置,可通过禁用缓存或缩短缓存间隔来即时更新配置。例如,在Spring Cloud Alibaba Nacos配置中心中启用自动刷新功能,并设置每5秒拉取新配置。同时,对于新增配置项,需重启客户端应用。还需检查Nacos服务器日志排除异常,并考虑升级Nacos版本解决兼容性问题。通过这些步骤,通常可有效解决配置不生效的难题。
287 0
|
7月前
|
Nacos
nacos手动创建配置命名空间隔离
nacos手动创建配置命名空间隔离
59 1
|
Java Nacos Spring
项目实战典型案例26——nacos的命名空间名称和id不一致带来的思考
项目实战典型案例26——nacos的命名空间名称和id不一致带来的思考
294 0
|
Nacos 微服务
Alibaba Nacos配置中心的命名空间与配置分组
Alibaba Nacos配置中心的命名空间与配置分组
342 0
|
存储 缓存 Java
项目实战典型案例23——-注册上nacos上的部分服务总是出现频繁掉线的情况
项目实战典型案例23——-注册上nacos上的部分服务总是出现频繁掉线的情况
511 0
|
15天前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
|
1月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
90 1
Nacos配置中心
|
1月前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
45 5
|
1月前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
150 10

热门文章

最新文章