02.Dubbo 应用之 2.7.3 版本

从Dubbo2.7到Dubbo3:Nacos2订阅列表应用名unknown问题的排查与解决 本文详细分析了从Dubbo2.7升级至Dubbo3后,在Nacos2注册中心订阅列表中出现应用名显示为“unknown”问题的根本原因。核心在于Dubbo3的应用级服务发现模型需要明确传递应用名参数。文章提供了三种实战解决方案:通过JVM启动参数直接设置、在Spring Boot代码中动态配置以及调整Dubbo与Nacos的详细配置,确保应用名能被正确识别,从而恢复微服务架构的可观测性。 阅读详情

1. 应用环境搭建

1.1 配置文件
1. pom.xml
<dependencies>
    <!-- dubbo -->
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo</artifactId>
        <version>2.7.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-rpc-http</artifactId>
        <version>2.7.3</version>
    </dependency>

    <!-- zookeeper -->
    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.13</version>
    </dependency>

    <!-- curator -->
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>2.9.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>2.9.1</version>
    </dependency>

</dependencies>
2. provider.xml
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <dubbo:application name="demo-provider">
        <dubbo:parameter key="qos.enable" value="false"/>
    </dubbo:application>

    <!-- 配置中心地址 -->
    <dubbo:config-center address="zookeeper://127.0.0.1:2181"/>

    <dubbo:protocol name="dubbo" port="20880"/>
    <dubbo:protocol name="dubbo" port="20881"/>
    <dubbo:protocol name="dubbo" port="20882"/>

    <dubbo:service interface="pers.masteryourself.study.dubbo.api.DemoService" ref="demoService"/>
    <bean id="demoService" class="pers.masteryourself.study.dubbo.provider.DemoServiceImpl"/>

</beans>
3. consumer.xml
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <dubbo:application name="demo-consumer">
        <dubbo:parameter key="qos.enable" value="false"/>
    </dubbo:application>

    <!-- 配置中心地址 -->
    <dubbo:config-center address="zookeeper://127.0.0.1:2181"/>

    <!-- 配置标签路由 -->
    <dubbo:reference id="demoService" interface="pers.masteryourself.study.dubbo.api.DemoService" timeout="3000"
                   tag="test"/>

</beans>
4. log4j.properties
###set log levels###
log4j.rootLogger=info, stdout
###output to the console###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n
1.2 代码
1. DemoService
public interface DemoService {

    String sayHello(String name);

}
2. DemoServiceImpl
public class DemoServiceImpl implements DemoService {

    @Override
    public String sayHello(String name) {
        URL url = RpcContext.getContext().getUrl();
        String message = String.format(" protocol is %s, address is %s", url.getProtocol(), url.getAddress());
        // cluster 策略演示
        try {
            System.out.println("调用此方法了。。。" + message);
            TimeUnit.SECONDS.sleep(2);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "你好:" + name + message;
    }

}
3. Provider
public class Provider {

    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:provider.xml");
        context.start();
        System.in.read();
    }

}
4. Consumer
public class Consumer {

    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("consumer.xml");
        context.start();
        DemoService demoService = context.getBean("demoService", DemoService.class);
        while (true){
            try {
                System.out.println(demoService.sayHello("dubbo"));
            } catch (Exception e) {
                System.out.println("报错了:" + e.getMessage());
            }
            TimeUnit.SECONDS.sleep(2);
        }
        // cluster 策略演示
        //System.out.println(demoService.sayHello("dubbo"));
    }

}

2. dubbo-admin 使用

2.1 配置管理
  • 消费者和提供者可以不需要配置 dubbo.registry.address 和 dubbo.metadata-report.address 属性,但需要配置 dubbo:config-center 地址,然后把其他配置迁移到配置中心上

  • 配置管理 -> 创建

image

dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
2.2 动态配置
  • 这里添加一个超时时间 6s

  • 服务治理 -> 动态配置 -> 创建

image

configVersion: v2.7
enabled: true
configs:
  - side: consumer
    addresses:
      - 0.0.0.0
    parameters:
      timeout: 6000

2.3 标签路由
  • 给服务器分组,调用方根据 tag 值路由到对应的服务提供者机器上

  • 服务治理 -> 标签路由 -> 创建

image

enabled: true
force: false
runtime: false
tags:
  - name: dev
    addresses:
      - '192.168.89.1:20880'
      - '192.168.89.1:20881'
  - name: test
    addresses:
      - '192.168.89.1:20882'
微服务:dubbo 从2.6 升级到2.7 dubbo 从2.6 升级到2.7 参考:https://www.cnblogs.com/cdfive2018/p/11245036.html dubbo官网:http://dubbo.apache.org/zh-cn/docs/user/versions/version-270.html 修改 dubbo 依赖,完成dubbo 升级 <properties> &l... 阅读详情

相关推荐

springboot2.3.0集成apache dubbo2.7.7发布rest,dubbo服务

本文将介绍使用springboot2.3.0集成apache dubbo2.7.7发布rest,dubbo服务,具体可参见apache dubbo官方示例,本文相关内容已在本地测试无误,如有问题欢迎留言拍砖。 pom依赖: <properties> <spring-boot.version>2.3.0.RELEASE</spring-boot.version> <dubbo.version>2.7.7</dubbo.version>

码农小麦 2655

dubbo 2.7.3版本直连问题

使用2.7.3的版本会报找不到提供者错误 升级为其他高版本又会报下面的错误, An attempt was made to call a method that does not exist. The attempt was made from the following location: com.alibaba.nacos.spring.beans.factory.annotation.AnnotationNacosInjectedBeanPostProcessor.initNacosServ

tszxlzc的专栏 1078

dubbo2.7.3学习(一)

dobbo官网:https://dubbo.apache.org/zh-cn/docs/user/quick-start.html github官网:https://github.com/apache/dubbo 一、创建公共依赖dubbo-dependencies 1. 创建工程dubbo-dependencies,pom.xml文件如下 <?xml version="1.0" ...

zsx18273117003的博客 1819

dubbo2.7升级到dubbo3--dubbo2.7升级到dubbo3系列

dubbo2.7升级到dubbo3系列

北巷东东的专栏 2679

富芮坤FR801xH蓝牙协议栈启动流程和notify实现温度数据主动上传

文章目录一、蓝牙协议栈启动流程1.1 初始化代码1.2 初始化流程1.3 回调函数里的初始化二、notify实现2.1 notify介绍2.2 notify实现2.3.1 定义数据2.3.2 获取连接号conidx2.3.3 gatt_notification函数的使用三、notify温度上传测试3.1 蓝牙调试工具3.2 蓝牙调试器设置3.3 测试结果四、参考链接   基于sdk开发的好处是方便项目的快速落地,现在用的是SDK里面的源文件,目前只是学习FR801xH芯片的特性,裁剪这个SDK需要点时间,

weixin_43810563的博客 4318

从IR Drop到EM分析:数字IC电源规划中那些没人明说的细节(以MTCMOS配置为例)

本文深入探讨数字IC后端设计中电源规划的关键细节,特别关注MTCMOS配置、电源网络电阻最小化和level shifter供电等实战技巧。通过分析IR Drop和EM问题,提供优化floorplan和powerplan的具体策略,帮助工程师避免常见陷阱,提升芯片设计的稳定性和可靠性。

q9w8e7r6t5的博客 511

Nacos升级2.2.2 相关版本升级及升级中问题【下篇】

Nacos升级到2.2.2版本时,代码中的相应依赖版本也需要进行升级,如springboot,dubbo等,在升级过程中本人也遇到了一些问题及相应的解决办法

雪龙翔宇 1762

波分复用技术原理

波分复用原理 把不同波长的光信号复用到同一根光纤中进行传送,这种方式我们把它叫做波分复用( Wavelength Division Multiplexing ) 一根光纤被划分为多个波道,多个波长以一定的间隔隔开,在光纤中独立传输。 波分复用应用演示 如果将WDM系统看作交通系统,光纤可以看作是多个车道的公用道路。 各种类型的业务就像货物一样,被打包装载到车辆中。 车辆按照分配的车道行驶至目的地,完成货物的运输。 想要提高波分复用系统的传输容量,就要增加波道数量或是提升单波传...

m0_63251770的博客 9997

Dubbo 找不到服务

倒大霉,我的老卑鄙 如果你的service 有几个版本 记得再dubboReference上加上 version属性 操!

weixin_46050018的博客 328

DETRs with Collaborative Hybrid Assignments Training论文阅读与代码

在这篇论文中,作者观察到在DETR中将过少的 Query 分配为正样本,采用一对一的集合匹配,会导致对编码器输出的监督稀疏,严重损害编码器的区分特征学习,反之亦然,也会影响解码器中的注意力学习。为了缓解这个问题,作者提出了一种新颖的协同混合分配训练方案,名为Co-DETR,以从多样的标签分配方式中学习更高效、更有效的基于DETR的检测器。这种新的训练方案可以通过训练多个并行辅助 Head ,以一对多的标签分配方式(如ATSS和Faster RCNN)进行监督,轻松增强端到端检测器中编码器的学习能力。

qingjing0413的博客 1154

Windows 24H2升级后eNSP AR_40报错40?VirtualBox虚拟化修复指南

虚拟化技术通过Hypervisor在操作系统与硬件间建立抽象层,使虚拟机能够共享物理资源。其核心原理依赖CPU的VT-x/AMD-V指令集,而Windows 24H2对内核隔离与驱动签名的强化会直接占用或拦截这些虚拟化资源。在工程实践中,VirtualBox作为Type-2型Hypervisor,常因内存完整性开启或版本过旧导致虚拟网卡创建失败,进而引发设备启动中断。典型场景包括网络仿真实验、多系统测试环境搭建等。当eNSP的AR_40路由器依赖VirtualBox引擎时,24H2的安全策略变更便会触发错误

weixin_34375251的博客 215

dubbo2.7.3使用过程问题集合

一、IOException parsing XML document from class path resource [com/zsx/provider.xml]; nested exception is java.io.FileNotFoundException: class path resource [com/zsx/provider.xml] cannot be opened becau...

zsx18273117003的博客 2万+

Unity类银河战士恶魔城学习总结(P103之前 Enemy相关 , 骷髅战士,状态机,敌人状态,)

udemy的Alex银河战士恶魔城,记录我自己的学习,代码会逐渐每一p更新,仅供参考学习。

suzh1qian的博客 1631

springboot2 整合 dubbo2.7 版本 以及新版 Dubbo_Admin

目录 什么是 Dubbo? Dubbo2.7.x 版本变化 Dubbo 生态系统 SpringBoot 整合 Dubbo2.7.x zookeeper 说明 zookeeper 安装启动 新版 Dubbo_Admin 创建 SpringBoot 项目 什么是 Dubbo? Apache Dubbo | ˈ d ʌ b əʊ | 是一款高性能、轻量级的开源 Java RP...

sh_c1314 5262

FreeSwitch采用mrcp协议对接科大讯飞asr和tts以及对话系统

FreeSwitch采用mrcp协议对接科大讯飞asr和tts对接过程

shanghaimoon的专栏 8839

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Dubbo入门项目搭建【Dubbo3.2.9、Nacos2.3.0、SpringBoot 2.7.17、Dubbo-Admin 0.6.0】

基于Dubbo3.2.9、Nacos2.3.0、SpringBoot 2.7.17、Dubbo-Admin 0.6.0、Jdk1.8 搭建的Dubbo学习Demo。

小道仙的后宫 1972

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

springboot整合dubbo2.7.x版本

文章目录什么是Dubbo?Dubbo2.7.x版本变化Dubbo生态系统SpringBoot 整合Dubbo2.7.xzookeeper 说明zookeeper 安装启动新版Dubbo_Admin创建springboot项目dubbo-api 接口服务模块dubbo-provider 服务提供者dubbo-comsumer 服务消费者启动程序验证DUBBO 什么是Dubbo? Apa...

光滑的秃头 6724

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

阿里dubbo2.6.0升级2.7.8版本适配问题

阿里dubbo2.6.0升级2.7.8 改pom.xml文件 <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>2.7.8</version> </dependency> 改java代码 将引用com.alibab.dubbo的地方改为com.apache.

qq_36743472的博客 3477

dubbo2.7.5 + dubbo admin "无元数据信息,请升级至Dubbo2.7及以上版本"问题

dubbo admin 查看Dubbo服务的方法报错: "无元数据信息,请升级至Dubbo2.7及以上版本 Dubbo2.7.5版本,Dubbo-Admin的develop分支中是用Dubbo2.7.3版本。 官方给出解决方法: 就是我们需要在ZK中配置注册中心和元数据中心地址。但是具体没没明白什么意思。 找了很多资料,都说的是需要在ZK服务的路径下新增一个文件,路径按照上面的路径,内容就是c...

站在墙头上的博客 1437

Apache Dubbo历史版本对比:从2.7到3.x的演进之路

你是否在升级Dubbo版本时遇到过兼容性问题?是否想知道从2.7到3.x版本究竟发生了哪些重大变化?本文将带你一文读懂Dubbo的关键演进节点,掌握各版本核心特性与升级要点,让你的微服务架构升级之路更加顺畅。读完本文后,你将能够清晰了解各版本差异、关键功能改进以及如何平滑迁移。 ## 2.7.x版本系列核心演进 ### 2.7.0:架构重构与现代化基础 Dubbo 2.7.0是一个里程碑式的...

gitblog_00185的博客 522

Dubbo 3.2版本分析Provider启动前的前菜

一直以来对Dubbo的实现原理颇为好奇,前几个月在Dubbo专栏里也陆续写了几遍文章,奈何自身原因+客观原因,就没有坚持下来。这次重启Dubbo源码刨析系列,也刚好可以借着2023年7月发布的比较新的Dubbo 3.2版本源码进行学习研究,共勉!

legendaryhaha的博客 1297

springboot 2.1.3整合dubbo 2.7.0(该文章只讲解dubbo整合,没有整合zookeeper,所以该示例项目中采用dubbo直连方式)

Dubbo重启维护可以说是IT行业的一大喜事,现在DUBBO已入驻 Apache 软件基金会孵化器,期间还有 Dubbo 3.0 的消息放出,3.0 将会是一个变革的版本,它去一切阻塞的变化甚至将影响到阿里 10 多年积累的中间件。而且Apache组织已发布重启后的第一个里程碑版本 2.7.0。本次springboot示例项目中整合也将是Apache发布的2.7.0版本。 具体也可参见官...

weixin_42315600的博客 3656

dubbo2.5.3升级到2.7.3

dubbo2.5.3升级到2.7.3dubbo框架升级修复方案升级介绍升级内容升级过程中出现的问题PS dubbo框架升级 dubbo框架因为阿里有一段时间没有维护,所以项目中用的还是2.5.3的版本,近期公司做安全渗透发现存在反序列化漏洞,利用该漏洞可以获取到部署provider服务主机的信息,属于高危漏洞,必须尽快修复。 修复方案 这种框架上的漏洞修复对于研究dubbo不深的人来说,升级版本是...

u013338798的博客 6301

springboot2 整合 dubbo2.7 版本 以及新版 Dubbo_Admin

目录 什么是 Dubbo? Dubbo2.7.x 版本变化 Dubbo 生态系统 SpringBoot 整合 Dubbo2.7.x zookeeper 说明 zookeeper 安装启动 新版 Dubbo_Admin 创建 SpringBoot 项目 什么是 Dubbo Apache Dubbo | d b | 是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 是的,是 Apache Dubbo,不在是 Al

web18224617243的博客 913

Dubbo2.7.3入门

2.7.X的Dubbo,包名不再是com.alibaba,而是org.apache 先看工程目录结构 一个公共api模块,一个SpringBoot项目充当Dubbo服务,一个SpringBoot项目充当服务消费者。 代码 父项目pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt...

weixin_30871293的博客 565
上一篇: 01.Dubbo 应用之 2.6.5 版本
下一篇: 01.Spring Cloud 之概述
masteryourself
博客等级 码龄9年 13粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值