腾讯亿级用户规模自研业务的上云实践解读,立即报名 了解详情
写点什么

Microsoft Avro 介绍

  • 2014-05-12
  • 本文字数:707 字

    阅读完需:约 2 分钟

Microsoft 发布了他们自己对 Apache Avro 通信协议的实现。Avro 被描述为“紧凑的二进制数据序列化格式,类似于 Thrift 或者 Protocol Buffers”,同时还有像 Hadoop 这样的分布式处理环境所需要的额外功能。

为了让该协议尽可能地快, Microsoft Avro 类库会在运行时使用表达式树构建并编译一个自定义的序列化器。在第一次命中将序列化器编译成 IL 代码之后,它的性能要比基于反射的算法更好。

Protocol Buffers 不同的是,Avro 协议是自描述的。当客户端和服务器之间建立连接的时候,模式就会被传送。通常情况下模式仅会被传输一次,因此没必要硬编码二进制格式,也没有在每个消息里面传递模式的代价。

由于以上种种原因,Microsoft Avro 类库能支持下面三种模式:

  • 反射模式。基于.NET 类型的模式构建序列化器的 IL 代码以便于实现性能最大化。
  • 通用记录模式。可以在运行时指定数据的 JSON 模式,因此能够处理任意模式的动态数据。
  • 容器模式。类库能够生成嵌入了模式的可移植文件。文件格式与 Avro 容器文件规范兼容,同时能够跨平台使用。

在反射模式下使用的时候,Avro 使用 WCF 开发者所熟悉的 DataContract/DataMemeber 属性。

通用记录模式会假定你并没有一个预定义的.NET 类用来存储数据。相反地,你使用 AvroRecord 类连同一个描述数据格式的 JSON 文档。AvroRecord 对象需要使用后期绑定模式访问(C# dynamic、关闭 VB Option Strict)。

容器模式可以连同反射模式或者通用记录模式一起使用。因为你是以这种模式创建文件而不是通过可以对数据进行压缩和 / 或加密(使用你喜欢的任意方式)的线路发送消息。开箱即用并不会让你感受到压力或者抑制,但是它仅包含构建代码解码器的指令

查看英文原文 Introducing Microsoft Avro

2014-05-12 20:241659
用户头像

发布了 321 篇内容, 共 111.0 次阅读, 收获喜欢 17 次。

关注

评论

发布
暂无评论
发现更多内容

技术分享 | Web 控件定位与常见操作

测吧(北京)科技有限公司

测试

百度工程师带你探秘C++内存管理(理论篇)

百度Geek说

c++ Linux 开发语言 企业号九月金秋榜

DophineSheduler上下游任务之间动态传参案例及易错点总结

Apache DolphinScheduler

大数据 DolphinScheduler 任务调度 大数据 开源 参数传递

如何提取 IOS Document_apis

测吧(北京)科技有限公司

测试

IaC 存储最佳实践

SEAL软件供应链安全

DevOps 基础设施 DevSecOps 基础设施即代码 IaC

本周四晚19:00知识赋能第八期第3课丨涂鸦小游戏的实现

OpenHarmony开发者社区

OpenHarmony

沉舟侧畔千帆过 | 高德的OceanBase Cloud实践之路

followtry

最佳实践 分布式数据库 数据库迁移 oceanbase

瓜分 28 万现金大奖,Tapdata 数据源 Connector 大赛等你来战!

tapdata

开源 开发者 开源项目 挑战赛

技术分享 | web 控件的交互进阶

测吧(北京)科技有限公司

测试

MobSDK 快速集成文档

MobTech袤博科技

Android Studio an'droid

JVM内存溢出问题排查

测吧(北京)科技有限公司

测试

如何提取 IOS Runtime Headers

测吧(北京)科技有限公司

测试

OpenHarmony主干开发板家族新添两成员,主干开发板数达20款

科技热闻

本地生活与小程序技术融合迎战增量市场

Onegun

小程序 小程序容器 本地生活

EasyNLP带你实现中英文机器阅读理解

阿里云大数据AI技术

自然语言处理 深度学习 PyTorch 企业号九月金秋榜

技术分享 | 网页 frame 与多窗口处理

测吧(北京)科技有限公司

测试

刘奇:能否掌控复杂性,决定着分布式数据库的生死存亡

PingCAP

#TiDB

Vue3入门指北(四)computed (计算属性)

Augus

Vue 九月月更

heco火币生态链智能合约dapp系统开发案例,合约部署

开发微hkkf5566

从几个开源项目浅谈IOS视频流输出方案

测吧(北京)科技有限公司

测试

浅谈Shiro框架在Spring Boot中的认证应用

测吧(北京)科技有限公司

测试

Mysql 之执行计划

测吧(北京)科技有限公司

测试

Vue3入门指北(三)ref和reactive

Augus

Vue 九月月更

Struts 校验器(Validate)

表单校验 Struts2 9月月更

Windows-Python 应用:使用消息操作窗口

测吧(北京)科技有限公司

测试

技术分享 | web自动化测试-执行 JavaScript 脚本

测吧(北京)科技有限公司

测试

MobSDK 客户端API

MobTech袤博科技

API an'droid

点赞破百万!字节算法大佬亲撰30W字数据算法笔记:GitHub标星93K

程序知音

Java 数据结构 数据结构与算法 后端技术

了解磁盘IO的那些事

测吧(北京)科技有限公司

测试

开发者有话说 | 一位工作十余年工程师的成长之路

矜辰所致

个人成长 经历分享 9月月更 成长感悟

使用 ReportLab 绘制 PDF

测吧(北京)科技有限公司

测试

Microsoft Avro介绍_.NET_Jonathan Allen_InfoQ精选文章