首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Protocol Buffer vs Json -何时选择一个而不是其他

Protocol Buffer vs Json -何时选择一个而不是其他
EN

Stack Overflow用户
提问于 2018-09-19 23:39:15
回答 2查看 12.9K关注 0票数 35

谁能解释一下在微服务架构中什么时候应该使用protocol buffer而不是JSON?反之亦然?同步和异步通信。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-21 03:41:17

何时使用JSON

  • 您需要或希望数据是人类可读的
  • web浏览器直接使用服务中的数据
  • 您的服务器端应用程序是用JavaScript
  • 编写的您不准备将数据模型绑定到架构
  • 您没有足够的带宽将另一个工具添加到您的工具库
  • 运行不同类型的网络服务的操作负担太大

ProtoBuf的优点

相对较小的简单size

  • Guarantees type-safety

  • Prevents schema-violations

  • Gives accessors

  • Fast serialization/deserialization

  • Backward compatibility

说到这里,你有没有看过flatbuffers

这里介绍了其中的一些方面google protocol buffers vs json vs XML

参考资料:

https://codeclimate.com/blog/choose-protocol-buffers/

https://codeburst.io/json-vs-protocol-buffers-vs-flatbuffers-a4247f8bda6f

票数 34
EN

Stack Overflow用户

发布于 2018-09-20 01:55:31

当使用者是或者可能是用对JSON (例如Javascript)有内置本地支持的语言编写时,我会使用JSON,web浏览器,或者需要人类可读性的地方。说到这一点,至少对于异步调用,许多开发人员享受着直接检查队列内容以进行调试的便利,甚至在正常的开发过程中也是如此。根据所使用的技术堆栈,仅仅为了减少网络负载而使用protobuf可能值得,也可能不值得,因为在异步世界中,任何性能的提高都不会给你带来太大的好处。而且,我们不再需要像以前在大多数语言中使用JSON编组和解组那样编写一大堆样板代码。

我会用protobuf来做其他的事情。如果还有任何其他的用例需要考虑上面的问题。你可能会看到一些优点,比如性能,网络负载,它的版本控制方案提供的向后兼容性,神奇的proto文件附带的可爱的文档,以及一些验证!如果由于某种原因,您在微服务之间有许多REST或其他同步调用,则可以通过网络而不是JSON发送协议,而不需要进行大量的权衡,同时提供了大量的优势。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52409579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档