Dubbo+Nacos服务启动报错,返回unknown user的问题

 更新时间:2023年09月07日 09:48:54   作者:普通网友  
这篇文章主要介绍了Dubbo+Nacos服务启动报错,返回unknown user的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1、由于开启了nacos的安全认证

修改了nacos的application.properties

nacos.core.auth.enabled=true

2、错误信息

如下:

Caused by: com.alibaba.nacos.api.exception.NacosException: Request nacos server failed: 
    at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.requestToServer(NamingGrpcClientProxy.java:279) ~[nacos-client-2.0.3.jar:na]
    at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.doRegisterService(NamingGrpcClientProxy.java:129) ~[nacos-client-2.0.3.jar:na]
    at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.registerService(NamingGrpcClientProxy.java:115) ~[nacos-client-2.0.3.jar:na]
    at com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate.registerService(NamingClientProxyDelegate.java:95) ~[nacos-client-2.0.3.jar:na]
    at com.alibaba.nacos.client.naming.NacosNamingService.registerInstance(NacosNamingService.java:145) ~[nacos-client-2.0.3.jar:na]
    at org.apache.dubbo.registry.nacos.NacosNamingServiceWrapper.registerInstance(NacosNamingServiceWrapper.java:57) ~[dubbo-3.0.2.1.jar:3.0.2.1]
    at org.apache.dubbo.registry.nacos.NacosRegistry.doRegister(NacosRegistry.java:170) ~[dubbo-3.0.2.1.jar:3.0.2.1]
    ... 42 common frames omitted
Caused by: com.alibaba.nacos.api.exception.NacosException: unknown user!
    at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.requestToServer(NamingGrpcClientProxy.java:271) ~[nacos-client-2.0.3.jar:na]
    ... 48 common frames omitted

3、pom.xml 依赖配置

如下:

<properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.6.RELEASE</spring-boot.version>
        <dubbo.version>3.0.2.1</dubbo.version>
        <nacos.version>2.0.3</nacos.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!-- spring boot 2.3.2.RELEASE -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
	<dependencies>
        <!-- spring boot 集成 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- dubbo spring boot 集成 -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>${dubbo.version}</version>
        </dependency>
        <!-- dubbo nacos 集成 -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
            <version>${dubbo.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>${nacos.version}</version>
        </dependency>
    </dependencies>

4、application.yml 配置内容

如下:

spring:
  application:
    name: dubbo-demo-provider
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss
dubbo:
  application:
    name: dubbo-demo-provider
    # 禁用QOS同一台机器可能会有端口冲突现象
    qos-enable: false
    qos-accept-foreign-ip: false
  scan:
    # 配置接口扫描包
    base-packages: tm.ucp.service
  protocol:
    # 协议类型
    name: dubbo
    port: 8888
  registry:
    protocol: dubbo
    address: nacos://localhost:8848?username=${username}&password=${password}
    timeout: 3000
    # 默认【public】 配置 namespace
    parameters:
      namespace: eec62008-6264-4e6e-aee8-bebb1c26a8ab

解决方法

由于dubbo的源码中发现 username、paasword并没有实际用到,

而在 RegistryConfig 类中发现 address属性值中,对username、password值进行了处理

故采用如下方法进行配置

dubbo:
  registry:
     address: nacos://localhost:8848?username=${username}&password=${password}

配置文件参考:

https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-samples/registry-samples

https://github.com/apache/dubbo/issues/5956

至此已成功解决~

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java的Hibernate框架数据库操作中锁的使用和查询类型

    Java的Hibernate框架数据库操作中锁的使用和查询类型

    这篇文章主要介绍了Java的Hibernate框架数据库操作中锁的使用和查询类型,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2016-01-01
  • Springsecurity Oauth2如何设置token的过期时间

    Springsecurity Oauth2如何设置token的过期时间

    如果用户在指定的时间内有操作就给token延长有限期,否则到期后自动过期,如何设置token的过期时间,本文就来详细的介绍一下
    2021-08-08
  • Apache log4j2-RCE 漏洞复现及修复建议(CVE-2021-44228)

    Apache log4j2-RCE 漏洞复现及修复建议(CVE-2021-44228)

    Apache Log4j2是一款Java日志框架,大量应用于业务系统开发。2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞(CVE-2021-44228),本文给大家介绍Apache log4j2-RCE 漏洞复现(CVE-2021-44228)的相关知识,感兴趣的朋友一起看看吧
    2021-12-12
  • 使用自定义注解实现加解密及脱敏方式

    使用自定义注解实现加解密及脱敏方式

    这篇文章主要介绍了使用自定义注解实现加解密及脱敏方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Socket结合线程池使用实现客户端和服务端通信demo

    Socket结合线程池使用实现客户端和服务端通信demo

    这篇文章主要为大家介绍了Socket结合线程池的使用来实现客户端和服务端通信实战demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • Springboot集成Jasypt实现配置文件加密的方法

    Springboot集成Jasypt实现配置文件加密的方法

    Jasypt是一个java库,它允许开发员以最少的努力为他/她的项目添加基本的加密功能,并且不需要对加密工作原理有深入的了解,这篇文章主要介绍了Springboot集成Jasypt实现配置文件加密,需要的朋友可以参考下
    2023-04-04
  • 详解如何在SpringBoot项目中使用全局异常处理

    详解如何在SpringBoot项目中使用全局异常处理

    在完整的项目开发中,异常的出现几乎是无法避免的;如果凡是有可能出现异常的地方,我们都手动的使用try-catch将其捕获的话,会使得代码显得十分臃肿并且后期不好维护。本文介绍了pringBoot项目中使用全局异常处理的方法,需要的可以参考一下
    2022-10-10
  • Java简单实现session保存到redis的方法示例

    Java简单实现session保存到redis的方法示例

    这篇文章主要介绍了Java简单实现session保存到redis的方法,结合实例形式分析了Java将session存入redis缓存服务器的相关设置、实现技巧与操作注意事项,需要的朋友可以参考下
    2018-05-05
  • Spring JPA整合QueryDSL的示例代码

    Spring JPA整合QueryDSL的示例代码

    这篇文章主要介绍了Spring JPA整合QueryDSL的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • javafx实现时钟效果

    javafx实现时钟效果

    这篇文章主要为大家详细介绍了javafx实现时钟效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11

最新评论