您的当前位置:首页正文

【Tars-go】腾讯微服务框架学习使用03-- TarsUp协议

2024-12-01 来源:个人技术集锦

3 TarsUP协议

: 有关于tars的所有介绍

每一个rpc调用双方都约定一套数据序列化协议,gprc用的是protobuff,tarsgo是统一通信协议 TarsTup。

tup语法:

基本用法

既然是协议,就有一套成熟的标准,不断迭代、向前向后兼容–这就是大厂的硬实力,淦(但文档确实一般般):

协议对比

既然是数据序列化协议,那就要做一个对比,为什么腾讯自己造了一个自己的。

常见的数据序列协议有 xml、json、protobuf

首先最大的区别是 xml、json都是文本格式的,空间占比大,但由于其良好的可读性,也是广泛应用于restful风格的接口返回中。

protobuf和tarsup都是基于二进制直接定义的,数据的编码与解码都是更高效的,但是这种编码解码都需要额外的支持,而restful适用于几乎一切平台。

总的来说,为什么http接口首选json:

  1. 可读、性能好像也没那么不好,只是相对于二进制的会慢一点,who care,现代的Web服务架构和硬件已经能够很好地处理大量的JSON数据,性能损失可以通过其他手段(如缓存、数据压缩)来缓解。
  2. 复杂性:使用JSON作为数据格式,开发者可以利用标准的HTTP工具和库来处理数据,而无需依赖于特定的序列化和反序列化工具。
  3. 易用性:JSON作为一种文本格式,很容易处理各种编码和字符集的问题,这使得它在不同平台和编程环境之间具有很好的兼容性。而二进制格式可能需要处理字节顺序、对齐方式等底层细节,这在跨平台交互时可能导致问题。
  4. 开放性:JSON作为一种开放标准,在Web开发中有广泛的文档和最佳实践指导。而Protobuf、Tars虽然也有文档,但相对较少,且通常与特定实现或框架相关,这在一定程度上限制了它们的通用性。
显示全文