REST、SOAP、protocolbuf、thrift、avro
REST、SOAP、protocolbuf、thrift、avro
@(JAVA)[hbase, hadoop, storm]
为提供异构环境或者跨语言的通信,需要一个中间协议进行转换,常用的有2大类:
一是传统的明文协议,如REST/SOAP等,这类协议最常用的方式是通过XML/JSON方式进行数据交互,然后通过解释这些文件得到实际所需的数据。其优点是内容可读,缺点是需要在大量的冗余信息,如XML的头,标签等内容。这对于有大量交互的情况时,会浪费大量的带宽。
第二种是protocolbuf、thrift、avro等二进制RPC层。最早是google实现的protocol buffer,但由于google并未将之开源,因此后来facebook写了一套thrift。最后,hadoop项目的创建者Doug Cutting写了一套avro。它们的功能都类似,细节肯定有不同之处。
举个例子,用户如何通过python来访问hbase的基本原理:
- hbase启动一个thrift服务
- 客户端使用python的API对表进行访问
- 这个API会被转化为某种格式(如REST的JSON,或者thrift的二进制),并发送至thift服务器
- thrift服务器解释这个JSON文件(或者其它格式),然后转化为内部的API(如HTable)
- 通过hbase的内部实现(java)来访问真正的数据。
protocol buffer与thrift/avro的最大不同在于后者有自己的RPC实现,因此可以启动server,而protocol buffer只能依托于另一个server。
REST、SOAP、protocolbuf、thrift、avro相关推荐
- 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
2019独角兽企业重金招聘Python工程师标准>>> SOA: 维基百科解释:SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机 ...
- 阿里P8架构师谈:主流RPC框架详解,以及与SOA、SOAP、REST的区别
什么是RPC RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 简言之,RPC使 ...
- 阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别
内容大纲: 1.介绍Restful.SOAP.RPC.SOA以及微服务 2.重点谈谈SOA与微服务的区别 3.以及为什么要使用微服务架构 什么是Restful Restful是一种架构设计风格,提供了 ...
- Restful、SOAP、RPC、SOA、微服务之间的区别
一.介绍Restful.SOAP.RPC.SOA以及微服务 1.1.什么是Restful? Restful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或 ...
- 【转载】谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
转载自:https://blog.csdn.net/tantexian/article/details/48196453 SOA: 维基百科解释:SOA:面向服务的软件架构(Service Orien ...
- SOA、SOAP、RPC、REST、DUBBO的区别与联系
1.SOA SOA(面向服务的软件架构.Service Oriented Architecture),是一种软件设计模式,主要应用于不同应用组件之间通过某种协议来互操作.例如典型的 通信网络协议.因此 ...
- 物联网应用层协议选择和分析--MQTT、CoAP 、HTTP、XMPP、SoAP
物联网应用层协议选择和分析--MQTT.CoAP .HTTP.XMPP.SoAP MQTT协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)最早 ...
- Web services详解 :入门必看 | WSDL、SOAP
文章目录 概念 交互过程 Web services 三种基本元素: SEI和CXF WSDL 概念 WSDL文档结构 `` **Operation**(操作) `` ***binding*** 元素 ...
- 开源组件系列(5):数据的序列化(Thrift、Protobuf、Avro)
(一)数据序列化的意义 当我们需要将采集的日志存入文件或者是传输到下一个系统时,需要将数据对象转化为字节流格式,也就是数据的序列化过程.通常情况下,搭建一套数据仓库系统,会经历如下四个阶段: 1.没有 ...
最新文章
- 全球及中国商业座机电话行业投资潜力及竞争格局展望报告2021-2027年版
- 编辑流程图_如何使用ProcessOn快速绘制一张高颜值流程图?
- Spotlight on unix 安装
- php 上传图片并生成缩略图,php 上传图片并生成缩略图
- uwp之拍照(使用后置摄像头)
- (专升本)Internet(计算机网络系统)
- Multisim14 - 运行10版本文件时数码管一直显示为0的问题
- phper must-have
- CTE 递归查询全解
- STM32----DMA控制器
- centos linux安装网卡驱动,如何在CentOS系统下安装网卡驱动
- 使用libimobiledevice在linux上挂载iphone6
- 小学计算机课题研究方案,《小学信息技术课堂有效教学的探究》课题研究方案...
- 链接、图像、列表、计数器
- 用图片制作radio单选按钮
- 从程序员代码“呼救”大破传销组织_聊掌握一门编程语言的重要性!
- 白色相簿2 coda篇各结局概率分析
- 微信开放平台绑定各移动应用、网站应用、公众号、小程序、第三方的个数
- github上操作部署
- 调用顺丰API实现电商专递下单和获取面单功能
热门文章
- 【floyd模板】哈利·波特的考试 (25 分)
- ValueError: XPath error: Invalid expression in //*[@id=‘info‘]/div/p[1]/test()_Python系列学习笔记
- CopyOnWriteArrayList的addIfAbsent()方法
- php论坛有哪些_建网站的软件哪个好?建网站的软件有哪些?
- php识别名片,用户信息名片怎么利用PHP实现自动生成
- java的基础语法是什么_java语法基础
- Java 枚举7常见种用法
- activity5.1初始密码
- html5生日时间怎么写代码,用JavaScript写得比较日期,计算生日的函数,
- 微x怎么设置主题_红人堂:抖音直播预告文案怎么写?5个小技巧提高你的文案吸引力!...