Dubbo3应用开发—Dubbo直连开发相关概念:通信、协议、序列化

Dubbo RPC直连应用的概念

所谓的Dubbo RPC直连应用,指的就是Consumer直接访问Provider,而无需注册中心的接入。

Dubbo完成的仅仅是RPC最基本的功能。

从这个角度DubboRPC直连等价于SpringCloud体系中的OpenFeign。

RPC直连设计的核心概念

  1. Provider 服务的提供者
  2. Consumer 服务的调用者
  3. 网络通信

网络通信内容的细化

dubbo直连操作流程图:

这里设计三个内容:

  1. 协议:网络传输过程中,调用者和被调用者传输数据的一种格式约定;

    分为

    • 应用层协议:主流的有:Http1.x和Http2.x

    • 传输层协议:私有协议,自己根据自己要求定制的协议

    dubbo:既支持 私有协议,比如dubbo协议、triple协议;也支持公有协议,比如http1.x,http2.x

  2. 通信方式:consumer如何与provider进行网络交互,

    传输层通信方式:BIO、NIO、Netty、Mina....

    Dubboo内置的默认通信方式:Netty4

    markdown 复制代码
    添加mina相关依赖后,可以更换协议
    <dubbo:protocol name="dubbo" port="20880" transporter="mina"/>
    
    应用层通信方式:Tomcat、Resin、Jetty
  3. 序列化:

    制定数据传输格式;

    同一个原始数据,好的序列化方案,传输数据体量会小

    markdown 复制代码
    默认序列化方案是hassion
    <dubbo:protocol name="dubbo" port="20880" transporter="mina" serialization="hassion"/>
    可以通过serialization来替换相应序列化方式。
相关推荐
古法安卓16 小时前
Android-日志系统源码解析
android·java·android studio
小夏coding17 小时前
从"一把梭"到"精妙拆解" —— 滑动窗口计时框架的设计演进
java·后端
MacroZheng18 小时前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
十年Java程序媛20 小时前
深度实战:JDK21 虚拟线程 + HikariCP 生产正确配比、坑点、监控全套
java·spring boot
xiaoqiMikko20 小时前
有人在搜一个不存在的 Tomcat 版本
java·tomcat
用户3126874877201 天前
ConcurrentHashMap 怎么保证线程安全?从分段锁到 CAS+synchronized
java
vipxieliang1 天前
ValidX vs Apache Commons Validator:功能与性能对比
java·spring boot
SimonKing1 天前
升级Spring Boot 4后,从 Jackson 2 到 3,到底有哪些变化
java·后端·程序员
吃饱了得干活1 天前
一篇讲清楚Spring Boot:自动装配、启动器、过滤器、拦截器、设计模式
java·spring boot·后端
lhldsg1 天前
AI零售系统实战指南:从架构设计到落地部署全解析
java·人工智能·小程序·uni-app·零售