突破Java面试(34)-Dubbo支持的协议

1 面试题

  • dubbo支持哪些通信协议?
  • 支持哪些序列化协议?

2 考点分析

在上一篇文章,我们说到dubbo的基本工作原理,那是你必须知道的,至少知道dubbo分成哪些层,然后平时怎么发起rpc请求的,注册、发现、调用,这些是最基本的。

接着就可以针对底层进行深入的讨伐了,比如第一步就可以先问问序列化协议这块,就是平时rpc的时候怎么走的?

3 面试题详解

3.1 dubbo支持的广阔通信协议

3.1.1 dubbo协议

dubbo://192.168.0.1:20188

默认就是走dubbo协议的,单一长连接,NIO异步通信,基于hessian作为序列化协议

适用场景

传输数据量很小(每次请求在100kb以内),但是并发量很高

为了要支持高并发场景,一般是服务提供者就几台机器,但是服务消费者有上百台,可能每天调用量达到上亿次!此时用长连接是最合适的,就是跟每个服务消费者维持一个长连接就可以,可能总共就100个连接。然后后面直接基于长连接NIO异步通信,可以支撑高并发请求。

否则如果上亿次请求每次都是短连接的话,服务提供者会扛不住。

而且因为走的是单一长连接,所以传输数据量太大的话,会导致并发能力降低。所以一般建议是传输数据量很小,支撑高并发访问。

3.1.2 rmi协议

走java二进制序列化,多个短连接,适合消费者和提供者数量差不多,适用于文件的传输,一般较少用

3.1.3 hessian协议

走hessian序列化协议,多个短连接,适用于提供者数量比消费者数量还多,适用于文件的传输,一般较少用

3.1.4 http协议

走json序列化

3.1.5 webservice

走SOAP文本序列化

3.2 dubbo支持的序列化协议

所以dubbo实际基于不同的通信协议,支持hessian、java二进制序列化、json、SOAP文本序列化多种序列化协议。但是hessian是其默认的序列化协议。

Github

#Java#
全部评论
楼主可以推荐几本dubbo的书吗
点赞 回复
分享
发布于 2019-05-16 14:05

相关推荐

#软件开发2024笔面经# 前面半个小时项目,简历上就一个java项目,更多的是一些比赛> 项目主要是问设计思路,然后调优思路,问问当时的想法,还有方案对比后面半个小时八股> 八股由浅入深,后面人已经快晕厥了,就说几个记得清楚的1.String的特点和内存分配情况2.锁的底层实现还是对比,问的比较广,Java的锁基本都问了一遍(目前面的很多家公司都问了synchronized作用范围,从底层层面解析为什么能锁住当前实例/所有实例)3.内存屏障原理,为什么会有重排序4.JVM内存相关,到了这一块面试官要求把堆栈讲清楚然后回到String类型,给一段代码分析创建了几个对象,内存怎么分配的(前面两次回答应该是答对了,面试官给了点压力当时太紧张就说错了).....(记起来再更新)无手撕面试官人比较好,前面聊的挺好的,后面猪脑过载了,第二天挂还是太菜了3.27一志愿岗位是基础平台研发Java实习,没有问MySQL和Redis,基本都是具体代码和场景结合JUC和JVM分析复活到风险策略分析(瞎投递的岗位)3.28风险策略分析 一面 30min面试官建议我去偏向业务那一侧多了解金融知识4.5有很多老哥问进度,统一更新一下,一志愿是基础平台研发(Java)挂了,但是没发感谢信二志愿现在还在“面试中”的状态,这几天没太关注蚂蚁的情况,等节后再联系一下内推的老哥吧大概率是寄了,策略分析岗位都是年少无知的时候投递的呜呜呜4.17策略分析 通知二面😭😭😭
点赞 评论 收藏
转发
点赞 14 评论
分享
牛客网
牛客企业服务