有了 Protocol buffer 还是用 JSON

简介: Protocol buffer 这东西真的很轻便吗

Protocol buffer 这东西真的很轻便吗?

 

 

Protocol buffer 这东西一点都不轻便,定义文件后需要重新编译一次,编译出来的代码没有可读性,没有可调试的可能。

版本不兼容

Protocol buffer 的版本是不会向后兼容的,你必须要保证版本一致。

如果版本升级了,恭喜你,所有的文件都需要重新编译一次。如果你的项目在 Maven 的依赖定义的有点乱,比如说一个项目中有 2 个版本,那大概率会出问题。

这个问题不是编译问题,是运行时的问题,出了问题非常不好调试。

滥用

曾经一个公司可以说一个教科书基本的滥用典范。

为了调用另外一个服务的服务层方法,定义了 Protocol buffer,然后从另外一个服务的服务层调用。

这个项目有 10 多个微服务,本地调试有可能需要启动 3 到 4 个服务才能真正拿回来一个数据,在 DevOps 定义的时候端口定义不明确,经常让开发人员搞不清楚要那个端口。

启动的时候需要占用一个端口,我们在定义 Protocol buffer 的时候需要为 Protocol buffer 单独开一个端口,这要求令人发指,本地上经常的端口冲突。

为了重用方法,很多方法不加思索的就给了一个 Protocol buffer 定义,后来发现这个方法要修的话,参数一改,另外的地方就出错,数据调用异常,空对象。

Protocol buffer 这东西看起来很美好,用起来步步惊心。

效率

Protocol buffer 标称的就是效率高。

Protocol buffer 其实本身也是基于 JSON 的数据传输格式,而且在数据传输的消息上是有大小限制的。

默认可传输的大小不大,别指望返回以几万的 List ,大概率会报错。

Protocol buffer 的数据传输是通过压缩进行传输的,JSON 数据格式因为是文本,通常压缩比还是蛮高的,只是压缩也会消耗计算能力和资源,因此有时候压缩后的传输比较难分析真正 API JSON 调用中的数据。等于是开盲盒。

对于一些定义不明确的引用,方法老改的微服务,就那么几个服务在跑的项目,就别折腾了。

直接用 JSON 吧。

https://www.ossez.com/t/protocol-buffer-json/14214/1

目录
相关文章
|
JSON 数据格式 Ruby
使用 Protocol Buffers 代替 JSON 的五个原因
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。
1371 0
|
8天前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
25 1
|
2月前
|
JSON 前端开发 JavaScript
|
6天前
|
存储 JSON Go
在Gin框架中优雅地处理HTTP请求体中的JSON数据
在Gin框架中优雅地处理HTTP请求体中的JSON数据
|
9天前
|
JSON JavaScript 数据格式
vue写入json数据到文本中+vue引入cdn的用法
vue写入json数据到文本中+vue引入cdn的用法
|
7天前
|
JSON 数据格式
Blob格式转json格式,拿到后端返回的json数据
文章介绍了如何将后端返回的Blob格式数据转换为JSON格式,并处理文件下载和错误提示。
17 0
Blob格式转json格式,拿到后端返回的json数据
|
2月前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
22天前
|
JSON JavaScript 前端开发
Haskell中的数据交换:通过http-conduit发送JSON请求
Haskell中的数据交换:通过http-conduit发送JSON请求
|
2月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
2月前
|
JSON 前端开发 API
【淘系】商品详情属性解析(属性规格详情图sku等json数据示例返回参考),淘系API接口系列
在淘宝(或天猫)平台上,商品详情属性(如属性规格、详情图、SKU等)是商家在发布商品时设置的,用于描述商品的详细信息和不同规格选项。这些信息对于消费者了解商品特性、进行购买决策至关重要。然而,直接通过前端页面获取这些信息的结构化数据(如JSON格式)并非直接暴露给普通用户或开发者,因为这涉及到平台的商业机密和数据安全。 不过,淘宝平台提供了丰富的API接口(如淘宝开放平台API),允许有资质的开发者或合作伙伴通过编程方式获取商品信息。这些API接口通常需要注册开发者账号、申请应用密钥(App Key)和秘钥(App Secret),并遵守淘宝的API使用协议。