Dubbo学习笔记-动力节点(第四章)匹配服务

Dubbo入门到精通学习笔记-动力节点王鹤 Dubbo 第一章 初识 Dubbo 1.1 架构 单体结构 垂直结构 分布式结构 流动计算结构 1.2 进程间通信 进程:一个进程就是一个应用。 进程间通信: 两个或更多的应用之间的调用。 实现进程间通信: 1) Servlet或Controller(1需要提供每个接口的url地址,2提供参数说明,3.参数不清楚类型(String)。4. http协议) 2) RPC (Remote Procedure Call) : 远程过程调用。实现分布式中的服务之间调用。 RPC是远程通信的一种技术, 不是规范。 阅读详情

最近自学到了Dubbo,我是跟着动力节点的视频在学,并且整理了相关笔记,分享给大家,也为以后复习用

视频资源:https://www.bilibili.com/video/BV1Sk4y197eD

第四章 匹配服务

默认使用接口名称作为服务匹配,找到服务提供者。

dubbo使用接口, version, group 三个值唯一匹配服务。 当没有version或者group使用接口名称作为唯一匹配条件

version:表示版本

group:分组

使用version,group区分接口的不同实现。

4.1 version

version:版本。 可以用来区分同一个接口的不同实现。 消费者和提供者必须使用相同的版本,否则调用失败。

提供者
<dubbo:service interface="xxxx.SomeService" version="1.0" />
dubbo使用: xxxx.SomeService:1.0 表示这个唯一的服务提供者

消费者:
<dubbo:reference interface="xxxx.SomeService" version="1.0" />
dubbo调用: xxxx.SomeService:1.0 调用对于的提供者

4.2 group

使用group区分服务的不同实现,接口的不同使用。 消费者和提供者要匹配group名称。

提供者:
<!--暴露服务使用group-->
<dubbo:service interface="com.bjpowernode.service.MenuService"
                   ref="fileService"
                   group="file" />

<dubbo:service interface="com.bjpowernode.service.MenuService"
                   ref="editMenuService"
                   group="edit" />


消费者:使用指定组

 <dubbo:reference interface="com.bjpowernode.service.MenuService"
                     id="fileMenuService"
                     group="file" />

 使用任意组
 <dubbo:reference interface="com.bjpowernode.service.MenuService"
                     id="fileMenuService"
                     group="*" />

4.3 Dubbo中的Filter

在这里插入图片描述

使用自定义Filter步骤:

  1. 创建类实现org.apache.dubbo.rpc.Filter接口, 实现invoke()

  2. 配置自定义Filter。

    1)在 resources 下创建 META-INF/dubbo 目录

    2)创建文本文件,名称org.apache.dubbo.rpc.Filter

    3)在文件中,说明自定义的Filter类信息

    ​ 自定义过滤器对象名称=自定义过滤器类的全限定名称

  3. 指定提供者使用某个Filter对象

    <dubbo:service interface="com.bjpowernode.service.HelloService" filter="filter自定义名称"/>
    
  4. 消费者调用提供者, 先执行filter

etcd 与 ZooKeeper 对比 etcd 和 ZK 都用于分布式协调,但数据模型、监听机制、生命周期管理和默认读取语义不同。ReadIndex 建立安全的读取位置,AppliedIndex 保证本地状态已经追上这个位置。两者结合,才能安全地从本地数据库返回线性一致的结果。 阅读详情

相关推荐

服务匹配机

用于服务和请求的描述文件的匹配机

dubbo学习过程、使用经验分享及实现原理简单介绍

一、前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下。 二、什么是dubbo Dubbo是阿里巴巴提供的开源的SOA服务化治理的技术框架,据说只是剖出来的一部分开源的,但一些基本的需求已经可以满足的,而且扩展性也非常好(至今没领悟到扩展性怎么做到的)

周绍禹-whuiss 8万+

杭电oj2023题题目详解(Java版)

杭电oj2023题详解

m0_51065958的博客 978

Dubbo接口的唯一性

在Dubbo中接口类并不能唯一确定一个服务,在dubbo中接口+服务分组+版本号才能唯一确定一个服

duzm200542901104的专栏 658

快速上手CH340N电路设计(CH340N USB转串口模块 USB Type-C接口 CH340系列芯片讲解)

一、上模块 二、功能分析 l 芯片:CH340N l 输入接口:USB、TYPE-C l 输出接口:TTL(5V\3.3V\GND\TX\RX) l 指示灯:电源、TX、RX 三、CH340x芯片 l CH340 是一个 USB 总线的转接芯片,实现 USB 转串口 l 全速 USB 设备接口,兼容 USB V2.0 l 硬件全双工串口,内置收发缓冲区,支持通讯波特率 50bps~2Mbps l 支持常用的 MODEM 联络信号 RTS、DTR、DCD、RI、DS...

东小东博客 5万+

YOLOv10改进,YOLOv10添加DICAM,用于水下图像增强模块,以提高朦胧水下图像的质量、对比度和色偏

在水下环境中,成像设备会出现水浑浊、光衰减、散射和颗粒问题,导致图像质量低、对比度差和彩色图像有偏差。这给使用传统视觉技术进行水下状态监测和检查带来了巨大挑战。近年来,水下图像增强因其在提高当前计算机视觉任务在水下目标检测和分割中的性能方面发挥着关键作用而受到越来越多的关注。由于主要从自然场景构建的现有方法在提高色彩丰富度和分布方面存在性能限制,作者提出了一种新颖的基于深度学习的方法,即 Deep Inception 和 Channel-wise Attention Modules (DICAM),以提高朦

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 480

dubbo框架标签使用之直连服务提供者、只订阅、只注册、静态服务、多协议暴露、服务分组、多版本、结果缓存等

直连提供者 在开发及测试环境下,经常需要绕过注册中心,只测试服务提供者,需要点对点直连将以服务接口为单位,忽略注册中心的提供者列表,A接口配置点对点,不影响B接口从注册中心获取列表。 只订阅 为了方便开测试同用一个注册中心时,服务提供者不注册服务,消费者订阅消息通过直连方式测试服务。 <dubbo:registry address="10.20.153.10:9090" register=...

chenhailonghp的博客 336

Cloud Connector RFC 访问控制深度实践:为 SAP BTP ABAP environment 打通安全、可控的远程连接

本文是一份面向企业ABAP团队与平台工程团队的Cloud Connector RFC访问控制配置指南。文章详细介绍了虚拟主机/实例号、负载均衡、资源白名单等核心概念,并提供了从零开始的配置流程。主要内容包括:通过Cloud Connector建立安全隧道的价值(零暴露、最小权限)、两种连接类型(无负载均衡/带负载均衡)的配置方法、资源白名单设置技巧,以及两个典型应用场景(Custom Code Migration远程检查与BAPI调用)的实操案例。指南基于SAP官方文档,包含落地经验与避坑建议,可帮助团队快

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 146

Dubbo源码解析(十三)dubbo消费者、生产者匹配解析

在实现服务相互调用的时候,会有一些group和version的配置,并且消费者根据这些配置实现 public static boolean isMatch(URL consumerUrl, URL providerUrl) { String consumerInterface = consumerUrl.getServiceInterface(); String p...

wuhulala的休息室 2059

用 Claude Code 快速摸清一个陌生代码库

摘要:Claude Code作为AI编码助手,能帮助开发者快速理解陌生代码库。与传统代码搜索不同,它从项目根目录出发,通过分析目录结构、配置文件等技术栈信息,提供系统级的概览。最佳实践是先通过"give me an overview"获取整体架构,再深入数据模型、认证流程等核心模块。它能生成术语表、编码规范和推荐的代码阅读路径,极大降低新成员的学习成本。相比传统方式,Claude Code能主动探索项目上下文,无需人工整理相关文件,使代码理解过程更接近有经验的工程师带教。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 92

【实战圣经】YOLOv8-pose姿态估计模型从训练到RK3588部署:让边缘端骨骼识别速度突破60FPS

本教程从“模型训练-转换-边缘部署”全链路拆解了YOLOv8-pose姿态估计方案在RK3588上的落地过程,每一步都经过实战验证。无论是智能健身的动作实时纠正,还是工业设备的关键部件姿态检测,这套流程都能让你以最低成本实现高精度、高实时性的姿态估计应用。如果你在实践中遇到模型转换报错、部署性能不达标等问题,可聚焦某一环节深入优化——毕竟,让AI在边缘端“精准捕捉每一个关键点”,才是技术驱动场景创新的核心。

m0_71589036的博客 251

ylb-知识点2-Swagger

【代码】ylb-知识点2-Swagger。

qq_47949604的博客 188

用MATLAB计算卡方值

然后,我们计算了期望频数,即在两个分类变量独立的情况下,每个单元格的预期频数。接下来,我们使用卡方检验的公式计算了卡方值。卡方检验是一种常用的统计方法,用于确定两个分类变量之间是否存在相关性。它基于观察到的频数和期望频数之间的差异来评估分类变量之间的独立性。在MATLAB中,我们可以使用。请注意,这只是一个简单的示例代码,用于说明如何使用MATLAB计算卡方值。在实际应用中,您可能需要根据您的具体数据和研究问题进行相应的修改和调整。在上面的代码中,我们首先创建了两个分类变量。函数显示了计算得到的卡方值。

CodeNexus的博客 2658

Dubbo服务发布调用实现

服务发布调用实现 系统需求 根据商品id,查询商品信息 Dao 单表查询,不需要写代码 使用Mybatis逆向工程生成的代码 Interface 在taotao-manager-interface工程中 创建一个ItemService接口 public interface ItemService { TbItem getItemById(long itemId); }...

天高任鸟飞 1万+

AutoSAR配置视频讲解:新建DaVinci工程

AutoSAR实验视频讲解:闪烁一颗LED实验【新建DaVinci工程】 上一篇 | 下一篇 | 总目录 实验架构图 视频本频放在了文末,下图描述了本次实验配置内容在AutoSAR架构中的位置,供大家参考 实验内容 本节课程讲解新建DaVinci工程,听上去新建工程很简单,但是还是需要很多的准备工作和细节。主要内容是新建工程和导入dbc文件和导入arxml文件的方法 主要步骤 新建DaVinci工程 导入.dbc通信矩阵文件 导入Mcal的arxml文件 实验视频2:Mcal配置 提示:版权所在,违

雪云飞星的博客 6276

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Dubbo:service和web注册version必须一致

注意以下代码标红位置!! service: 注意consumer也要加上! web充当consumer:       由于自己忘记在service-provider上加版本号,所以导致和消费者不一致,消费者始终调用不到!!如下图:   加上后就一致了。  ...

不花的花和尚的博客 3070

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

(7)Dubbo的四种配置方式

本节介绍 Dubbo共有四种配置方式:xml配置、dubbo.properties属性配置、API配置、注解配置。本节将会对这四种方式分别做下介绍,同时也会对主要的配置方式给出范例。 一:xml配置 所有配置项分为三大类,参见下表中的"作用" 一列。 服务发现:表示该配置项用于服务的注册与发现,目的是让消费方找到提供方。 服务治理:表示该配置项用于治理服务间的关系,或为开发测试提供便利条...

没头脑遇到不高兴 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

远程调用的两种范式:HTTP 接口 vs 二进制 RPC,到底怎么选?

本文从 "为什么要有远程调用" 出发,把远程调用拆成两条技术路线 —— 一条是基于 HTTP 的 REST/JSON 路线,一条是基于自定义二进制协议的 RPC 路线;再往下展开到 Dubbo、Thrift、gRPC、OpenFeign 这几个常见的框架。像调本地方法一样调远程方法。// 表面上是本地调用,实际发了一次网络请求中间这个动态代理,帮你干了三件事:把方法名和参数序列化成字节流、通过网络发到提供方、把回包反序列化成返回值对象。重点在于:这条链路上跑的不是 HTTP,而是框架自己定义的二进制协议。

2401_87174643的博客 314

RPC与网络通信:如何让微服务之间“顺畅对话”?

本文从真实故障出发,剖析微服务间RPC通信的五大核心陷阱:超时配置缺失导致雪崩、重试策略放大请求压力、注册中心缓存引发发布期报错、序列化兼容性问题及异常类型混淆。通过可落地的配置示例(如gRPC默认超时拦截器、关闭LoadBalancer缓存)与实践原则(超时逐层递减、仅幂等接口重试),揭示如何构建稳定可靠的远程调用链路,适合正在被调用链稳定性困扰的后端开发者与SRE。

2302_80138126的博客 736

罗克韦尔ACD工程归档离线变量树解析

本文实现纯C#(.NET 4.0,零依赖)逆向解析罗克韦尔RSLogix 5000工程归档文件(.acd),从二进制结构中提取并重建完整变量树。通过解析非ZIP格式的三段式容器、读取UTF-16编码的TagInfo.XML,依据类型展开规则(含预定义类型与隐藏成员)、统一命名映射及维度以XML为准,成功还原785个符号的离线变量树,并与在线browse逐项比对一致,验证了“.acd是权威元数据源”的核心结论。

qq_25814147的博客 358

RPC原理通俗讲解

平时开发中我们经常会听到RPC,Dubbo、gRPC都属于RPC框架。很多同学刚接触RPC时容易被一堆名词劝退:Stub、动态代理、注册中心、序列化、负载均衡……本文先从RPC最本源的标准Stub模型讲起,再延伸到微服务里带注册中心、负载均衡的工程化架构,结合两张流程图,用大白话把RPC完整调用流程讲清楚。RPC(远程过程调用),目标就是让开发者像调用本地方法一样,调用另一台服务器上的远程方法,底层自动帮我们屏蔽网络通信、寻址、序列化等复杂细节。

weixin_68315058的博客 108

C++ RPC 技术原理:从一次调用到百万连接的工程实现

本文深入剖析C++ RPC技术的底层原理,从一次远程调用的字节级流程出发,系统拆解序列化、帧协议、粘包处理、多路复用与可靠性保障等核心工程问题。强调真实约束下的设计取舍:字节序统一、零拷贝缓冲、增量解码、流控与版本兼容性。指出“百万连接”是工程目标而非指标,需结合内存、文件描述符与内核参数实测验证。框架差异本质在于如何在不可靠网络上模拟同步可靠调用,涵盖协议、传输、调用模型、可靠性、治理与可观测性六大维度,揭示高性能RPC的实现逻辑与陷阱规避。

liulilittle的博客 616

MCP本地服务集成避坑:从Stdio管道僵死到双向JSON-RPC稳健通信

本文剖析MCP服务端因调试日志污染Stdio管道导致客户端挂起的根因,指出console.log等非结构化输出会破坏JSON-RPC协议解析,引发通信僵死。提出双通道隔离方案:将业务通信严格限定于stdout,所有日志分流至stderr,并强制单行原子化传输与缓冲刷新。实践证明该架构可彻底消除解析崩溃与延迟问题,实现零延迟、高可靠的本地智能体通信,是MCP插件工程化的必选项。

艺杯羹的博客 500

Kubernetes权威指南——Kubernetes集群管理(三)

kubectl drain操作将遵循PodDisruptionBudget的设定,如果在该节点上运行了属于同一服务的多个Pod,则为了保证最少存活数量,系统将确保每终止一个Pod后,一定会在另一台健康的Node上启动新的Pod,再继续终止下一个Pod。一旦出现资源紧缺的迹象,kubelet就会主动终止一个或多个Pod的运行,以回收紧缺的资源。通过kubectl get pods命令查看Pod列表,会发现Pod的数量虽然没有发生变化,但是指定的Pod已经消失,取而代之的是一个新的Pod。

吴声子夜歌的博客 271

【AI大模型】MCP 模型上下文协议:客户端-服务器架构、JSON-RPC 消息与能力协商、工具发现与调用链路、与函数调用的分工

MCP(模型上下文协议)是Anthropic提出的统一标准,解决AI应用对接外部服务的集成难题。采用客户端-服务器架构,通过JSON-RPC 2.0实现消息交互,分层设计数据层与传输层,支持本地(stdio)与远程(HTTP)通信。核心机制包括能力协商、工具动态发现、调用链路管理,明确区分模型与函数调用的职责:模型负责生成意图,服务器执行真实操作。该协议将集成复杂度从M×N降至M+N,提升可扩展性与复用性。

分享 AI 时代程序员的进阶之路:大模型应用、AI 编程工具实战,同时沉淀 C / Linux 底层技术笔记。与君共赴,万里征途。 355

ClickHouse 数据目录迁移翻车实录:整十分 SIGQUIT 疑云、uuid 撞车双节点互踢与 ZooKeeper 僵尸副本排查(附迁移 SOP)

ClickHouse 两节点集群做数据目录迁移,迁完节点 2 后节点 1 无故 stop,此后两节点随便启动哪个都会被自动终止——退出全部发生在整十分,日志写着 Received termination signal (Quit)。本文完整还原排查:信号溯源五步法(journalctl/strace si_pid/auditd)、整点规律与 ZK 分桶过期的辨析、system.replicas 三板斧取证,最终锁定 rsync 迁移经典坑:/var/lib/clickhouse/uuid 撞车导致双节点互踢

Sayai的专栏 295
上一篇: Dubbo学习笔记-动力节点(第三章)Zookeeper和Nacos注册中心
下一篇: Dubbo学习笔记-动力节点(第五章)管理控制台(Dubbo Admin)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值