bladeX SpringBoot 2.X.X 集成 NACOS 1.4.1(1.X.X)方案说明

当采用springboot2.3以上框架接入旧版本nacos时(1.X),会有“无包可用”的情况,要么因为高版本不兼容报错:

com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING异常

要么去连一个大了1000的端口,因为

1.当nacos客户端升级为2.1版本后,新增了gRPC的通信方式,新增了两个偏移量端口(9848,9849)在原端口(8848)基础上面偏移量1000和1001。

        原端口:8848 ——》服务使用

        偏移量端口1:9848 ——》客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求

        便宜连端口2:9849 ——》服务端gRPC请求服务端端口,用于服务间同步等

        2. 开通相应服务端口:8848、9848、9849
以上为CSDN博主「ZWH@随笔」的原创文章,原文链接:https://blog.csdn.net/sevenmt/article/details/126847612

解决办法

maven中的依赖改为如下:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <exclusions>
        <exclusion>
             <groupId>com.alibaba.nacos</groupId>
             <artifactId>nacos-client</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
     <groupId>com.alibaba.nacos</groupId>
     <artifactId>nacos-client</artifactId>
     <version>1.4.1</version>
</dependency>

代码解释:
spring-cloud-starter-alibaba-nacos-discovery的版本可以指定2.0以上的版本,但是要排除其依赖的nacos-client,而指定采用nacos-client-1.4.1 ,这样就绕开了上面说明的nacos 2.0之后的多端口问题,从而兼容了nacos 1.X版本

最后附上nacos的相关配置:

application.yml中添加(配置部分没用到所以注释了,只放开了发现服务部分):

spring:
  application:
    name: myservice
  profiles:
    active: dev
  cloud:
    nacos:
      # 配置中心
      #config:
            # 命名空间id(此处不用public,因public初始化的空间, id为空)
        #namespace: XXXXXXXXXXXXXXXXXXXXXXXXX
            # nacos的ip地址和端口
        #server-addr: 127.0.0.1:8848
            #nacos登录用户名
        #username: nacos
            #nacos登录密码
        #password: nacos
            # 这个就表示 在我们nacos命名空间id为 dev中 有一个data-id 为 demo-service.yml 的配置文件 读取这个里面的配置
        #file-extension: yaml
        #config-retry-time: 300000
            # 共享配置, 可以把公共配置放在同个命名空间下,然后创建一个 common.yml 文件 ,里面可以放共用的配置
        #shared-configs: blade.yaml

          # 发布到注册中心 (如果没有使用可以不配)
      discovery:
            # 命名空间id(此处不用public,因public初始化的空间, id为空)
        namespace: XXXXXXXXXXXXXXXXXXXXXXXX
            # nacos的ip地址和端口
        server-addr: 127.0.0.1:8848

application启动类中添加:@EnableDiscoveryClient

@EnableDiscoveryClient

@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		Application.run(CommonConstant.APPLICATION_NAME, Application.class, args);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值