• Dubbo + Nacos 服务启动报错,返回unknown user


    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3、 pom.xml 依赖配置如下:

    	
            1.8
            UTF-8
            UTF-8
            2.3.6.RELEASE
            3.0.2.1
            2.0.3
        
        
        
            
                
                
                    org.springframework.boot
                    spring-boot-dependencies
                    ${spring-boot.version}
                    pom
                    import
                
            
        
    
    	
            
            
                org.springframework.boot
                spring-boot-starter-web
            
    
            
            
                org.apache.dubbo
                dubbo-spring-boot-starter
                ${dubbo.version}
            
            
            
                org.apache.dubbo
                dubbo-registry-nacos
                ${dubbo.version}
            
            
                com.alibaba.nacos
                nacos-client
                ${nacos.version}
            
        	
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    解决方法:
    由于dubbo的源码中发现 username、paasword并没有实际用到,
    而在 RegistryConfig 类中发现 address属性值中,对username、password值进行了处理
    在这里插入图片描述
    故采用如下方法进行配置

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

    配置文件参考:
    https://github.com/apache/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-samples/registry-samples

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

    至此已成功解决,写的不好,望各位指正!!!

  • 相关阅读:
    地表最帅缓存Caffeine
    函数式编程基本语法
    [docker] 网络连接
    ASP.NET Core依赖注入系统学习教程:关于服务注册使用到的方法
    【glog用途用法和显示样式】
    CMMI和进化论
    A. Everyone Loves to Sleep
    微信小程序项目源码在线考试系统+后台含论文+PPT+源码
    03 探究Kubernetes工作机制的奥秘
    Spring Cloud Alibaba微服务第9章之MyBatis-plus
  • 原文地址:https://blog.csdn.net/qq_46416934/article/details/126327704