文档章节

通信协议之Protocol buffer(高效的数据压缩编码方式之Java篇)

吴伟祥
 吴伟祥
发布于 2018/10/11 14:16
字数 427
阅读 24
收藏 5

之前一直习惯用json进行数据的传输,觉得很方便。来到新公司后发现同事们用的更多的的协议都不是json,而是Protocol buffer。这个东西之前没有听说过,不明白同事们为什么放弃好好的json不用,用这个。后来了解到经常是设备与设备之间进行通信,而不是设备与服务器做通信。很多设备是linux下c语言做核心服务,c来解析json比较麻烦。于是决定花些时间来学习这个陌生的协议。

简介

1. 是什么? 
  Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关、语言无关、可扩展,可用于通讯协议数据存储等领域。通俗点来讲它跟xml和json是一类。是一种数据交互格式协议。性能比 Json、XML 真的强!太!多!

2. 为什么要用?
  - 平台无关,语言无关,可扩展;
  - 提供了友好的动态库,使用简单;
  - 解析速度快,比对应的XML快约20-100倍;
  - 序列化数据非常简洁、紧凑,与XML相比,其序列化之后的数据量约为1/3到1/10。

 


 

 

Java中使用Protocol Buffer

本文转载自:https://blog.csdn.net/briblue/article/details/53187780

吴伟祥

吴伟祥

粉丝 34
博文 500
码字总数 285677
作品 0
泉州
后端工程师
私信 提问
加载中

评论(0)

Spring Cloud OpenFeign集成Protocol Buffer

本文作者张天,著有《Spring Cloud 微服务架构进阶》一书。 背景  在之前的文章中,我们介绍过基于Spring Cloud微服务架构,其中,微服务实例之间的交互方式一般为RESTful HTTP请求或RPC调用...

aoho
2018/10/07
0
0
Protocol Buffer技术详解(语言规范)

该系列Blog的内容主体主要源自于ProtocolBuffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo。这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时...

Zero零_度
2015/11/13
409
0
Thrift的java和php数据交互

Thrift是一个软件框架(远程过程调用框架),用来进行可扩展且跨语言的服务的开发,封装了数据传输格式(二进制、json)和网络通信的服务框架,提供多语言(C++, Java, Python, PHP, Ruby, E...

penngo
2015/08/07
5.1K
4
mina服务端和C++客户端的通信问题?

有没有大侠在项目中用到过mina服务端和C++客户端的数据包传输,协议数据包格式包括包头和数据,包头中有几个属性信息,比如包头标示、协议类型、数据类型、数据长度,数据信息是用到protoco...

多乐乐
2011/05/08
3.4K
7
Android socket高级用法(自定义协议和Protocol Buffer使用)

前提 之前写过两篇关于socket的文章,但是,只是简单的介绍了一下关于socket Tcp和Udp的简单使用。如果没有看过的朋友可以去看看Android Socket编程(tcp)初探和Android Socket编程(udp)初...

Silence潇湘夜雨
2018/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java基本程序设计结构

简述 Java起源于Sun公司为机顶盒开发的一款开发语言“Oak”,由于该名称被抢注更名为“Java”。Java是基于面向对象的开发语言,其特性在于“一次编译,到处运行”,这实现依赖于JVM。 Java程...

Yongy
17分钟前
49
0
【jquery仿dataList——性能优化】模板预编译思想提高性能10倍以上!!!

那撒,IE和google性能不减反增,求高手解释....... 前言 呵呵,当然,什么预编译什么性能提高5倍以上基本上市坑爹的,这里就是为了吸引阅读量,哈哈。 上当的大哥主动顶下哇??? 正题 之前...

shzwork
21分钟前
57
0
用博客系统开发作文网站探索MYSQL数据库性能和缓存技巧[图]

用博客系统开发作文网站探索MYSQL数据库性能和缓存技巧[图] 最近忙着建站,感觉现在建站是越来越难了,但还是用ZBLOG系统建了一个作文网站,叫做求索作文网,但是发现博客系统的缺点也还是有...

原创小博客
24分钟前
31
0
LinearLayout不在ScrollView内扩展

我在ScrollView中有一个LinearLayout ,它有android:layout_height="fill_parent" ,但它没有扩展到ScrollView的整个高度。 我的布局看起来像: level layout layout_width layout_......

技术盛宴
42分钟前
37
0
docker上启动nginx,并配置修改nginx的配置文件

1.使用docker 下载nginx 镜像 docker pull nginx 2.启动nginx docker run --name nginx -p 80:80 -d nginx 这样就简单的把nginx启动了,但是我们想要改变配置文件nginx.conf ,进入容器,命令...

yuxw
47分钟前
45
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部