首页 雷火电竞正文

九鹭非香,阿里架构师谈,Dubbo 支撑哪些序列化协议?-雷火竞猜

admin 雷火电竞 2019-05-16 211 0

面试题

dubbo 支撑哪些通讯协议?支撑哪些序列化协议?说一下 Hessian 的数据结构?PB 知道吗?为什么 PB 的功率是最高的?

面试官心思分析

上一个问题,说说 dubbo 的根本作业原理,那是你有必要知道的,至少要知道 dubbo 分红哪些层,然后平常怎样建议 rpc 恳求的,注册、发现、调用,这些是根本的。

接着就能够针对底层进行深化的问问了,比方榜首步就能够先问问序列化协议这块,便是平常 RPC 的时分怎样走的?

面试题分析

序列化,便是把数据结构或许是一些目标,转换为二进制串的进程,而反序列化是将在序列化进程中所生成的二进制串转换成数据结构或许目标的进程。

dubbo 支撑不同的通讯协议

  • dubbo 协议

默许便是走 dubbo 协议,单一长衔接,进行的是 NIO 异步通讯,根据 hessian 作为序列化协议。运用的场景是:传输数据量小(每次恳求在 100kb 以内),可是并发量很高。

为了要支撑高并发场景,一般是服务提供者就几台机器,可是服务顾客有上百台,或许每天调用量到达上亿次!此刻用长衔接是最合适的,便是跟每个服务顾客保持一个长衔接就能够,或许一共就 100 个衔接。然后后边直接根据长衔接 NIO 异步通讯,能够支撑高并发恳求。

长衔接,浅显点说,便是树立衔接往后能够继续发送恳求,无须再树立衔接。

而短衔接,每非必须发送恳求之前,需求先从头树立一次衔接。

  • rmi 协议

走 Java 二进制序列化,多个短衔接,合适顾客和提供者数量差不多的状况,适用于文件的传输,一般较少用。

  • hessian 协议

走 hessian 序列化协议,多个短衔接,适用于提供者数量比顾客数量还多的状况,适用于文件的传输,一般较少用。

  • http 协议

走 json 序列化。

  • webservice

走 SOAP 文本序列化。

dubbo 支撑的序列化协议

dubbo 支撑 hession、Java 二进制序列化、json、SOAP 文本序列化多种序列化协议。可是 hessian 是其默许的序列化协议。

说一下 Hessian 的数据结构

Hessian 的目标序列化机制有 8 种原始类型:

  • 原始二进制数据
  • boolean
  • 64-bit date(64 位毫秒值的日期)
  • 64-bit double
  • 32-bit int
  • 64-bit long
  • null
  • UTF-8 编码的 string

别的还包含 3 种递归类型:

  • list for lists and arrays
  • map for maps and dictionaries
  • object for objects

还有一种特别的类型:

  • ref:用来表明对同享目标的引证。

为什么 PB 的功率是最高的?

或许有一些同学比较习惯于 JSON or XML 数据存储格局,关于 Protocol Buffer 还比较生疏。Protocol Buffer 其实是 Google 出品的一种轻量而且高效的结构化数据存储格局,功能比 JSON、XML 要高许多。

其实 PB 之所以功能如此好,首要得益于两个:榜首,它运用 proto 编译器,主动进行序列化和反序列化,速度非常快,应该比 XML 和 JSON 快上了 20~100 倍;第二,它的数据压缩作用好,便是说它序列化后的数据量体积小。由于体积小,传输起来带宽和速度上会有优化。

原文:https://my.oschina.net/u/3728792/blog/3040591

雷火电竞版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

最近发表

    雷火竞猜_雷火电竞网址_雷火电竞网站

    http://www.tvbuynavi.com/

    |

    Powered By

    使用手机软件扫描微信二维码

    关注我们可获取更多热点资讯

    雷火电竞出品