前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dubbo 注册,调用,通信,容错

Dubbo 注册,调用,通信,容错

作者头像
温安适
发布2023-10-16 15:14:51
1410
发布2023-10-16 15:14:51
举报
文章被收录于专栏:温安适的blog温安适的blog

Dubbo简化模型

3种开发方式

开发方式

举例

特点

XML配置

业务代码零侵入 扩展修改方便

注解方式

@EnableDubbo @DubboService @DubboReference

扩展修改方便 修改需要重新编译代码

API编程

DubboBootstrap ServiceConfig ReferenceConfig应用

业务侵入性大 修改复杂 修改后需要重新编译

Dubbo 提供者

注册流程

隐式参数

不改变发布者的接口定义的情况下,传递参数

设置参数RpcContext.getContext().setAttachment("parameter",123);

获取参数RpcContext.getContext().getAttachment("parameter");

生产一般不适应,防止产生技术债务

多版本发布流程

1.低流量时段,先升级一半提供者为新版本。

2.升级消费者为新版本

3.之后将剩下的一般提供者调整为最新版本

服务调用者

调用流程

EchoService

所有Dubbo 引用的服务,都可以强转为EchoService, 内部方法$echo ,可以用于测试调用链路是否是通的。

GenericService 泛化调用,生产应禁用

没有API的模型,参数返回值都是Map

通讯机制

Protocol协议层

Exchange 信息交换层,封装请求,响应

Transport 网络传输层,依托netty,封装统一接口

Serialize 序列化层,数据序列化,反序列化

核心接口

Protocol 接口 export 提供者使用 暴露服务, refer调用者使用,引用服务

Exchanger 接口 bind 提供者使用绑定服务 connect调用者使用, 连接服务

Transport 接口 bind 提供者使用服务端 connect 调用者使用,连接服务

举例:

DubboProtocol 创建ExchangeServer (HeaderExchanger)

HeaderExchanger :

  1. HeatbeatTimer 心跳机制
  2. Transport#bind

NettyTransporter 2个版本,一般使用的是4的那个版本

内部创建nettyServer,使用AbstractServer#send 委托Channel 发送消息

容错

集群容错

cluster配置+重试retries @DubboReference说明

cluster配置 项

failover 一个提供者不行,尝试下一个

failfast 提供者失败,抛出异常

failsafe 提供者失败,提供者记录日志

failback 提供者A失败,定时重试,继续访问提供者A

forking 并行访问,有一个提供者返回成功,就返回

broadcast 广播,任意提供者失败,就报错

服务降级

首选明确,核心流程是不能降级的!@DubboReference 的mock进行配置

2中方式 调用者mock 一般用这个,

提供者stub 一般不使用

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Dubbo简化模型
  • Dubbo 提供者
    • 注册流程
      • 隐式参数
        • 多版本发布流程
        • 服务调用者
          • 调用流程
            • EchoService
              • GenericService 泛化调用,生产应禁用
              • 通讯机制
                • 核心接口
                  • 举例:
              • 容错
                • 集群容错
                  • 服务降级
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档