Kai*_*dul 5 rest json protocol-buffers microservices
任何人都可以解释何时使用协议缓冲区而不是JSON用于微服务架构?反之亦然?同步和异步通信.
虽然我们在这里,你看过flatbuffers吗?
这里介绍了google协议缓冲区vs json vs XML的一些方面
参考:
https://codeclimate.com/blog/choose-protocol-buffers/
https://codeburst.io/json-vs-protocol-buffers-vs-flatbuffers-a4247f8bda6f
当消费者使用或可能使用内置原生支持 JSON 的语言(例如 Javascript)、Web 浏览器或需要人类可读性的语言编写时,我会使用 JSON。说起来,至少对于异步调用来说,很多开发者都喜欢直接检查队列的内容进行调试,甚至在正常的开发过程中也很方便。根据所使用的技术堆栈,使用 protobuf 来减少网络负载可能值得也可能不值得,因为任何性能提升都不会在异步世界中为您带来太多好处。并且我们不再需要像过去在大多数语言中使用 JSON 编组和解组那样编写一堆样板代码。
我会将 protobuf 用于其他所有事情……如果根据上述考虑还有其他用例可供使用。您可能会看到一些优势,例如性能、网络负载、其版本控制方案提供的向后兼容性、原始文件神奇地附带的可爱文档以及一些验证!如果由于某种原因你在微服务之间有很多 REST 或其他同步调用,protobuf 可以通过线路而不是 JSON 发送,而没有很多权衡(如果有的话),同时提供很多优势。