使用protocol buffers优缺点分析
很早就听说过PB(protocol buffers的简称),但从未实际地去了解,最近动手对它进行了初步了了解和使用,由于它长得和RPC/IDL相似,加上以前有参与过使用C++实现过RPC的项目经验,所以容易理解起来比较顺畅,网上也有不少基于PB的RPC实现。
为什么要去了解PB?一是因为它如同MapReduce一样,属于Google出品,口碑好也很受欢迎;其次是想将它引入mooon的实现中,问题也就来了,为啥要用它?能带来什么好处?会存在什么问题?
好处显而易见,网络消息全丢给它,省去了很多编解码的麻烦和工作量,而且也易于维护,如果系统需要跨平台或语言,那非它莫属了(不和thrift等比)。但是增加了对第三方的依赖,而且是一个比第三库更强的依赖,因为还需要使用到它的.proto定义和编译器。虽然它的效率比XML/JSON等高,但肯定比不过直接使用消息结构。纠结中,最纠结的还是是否需要产生对它的依赖,要知道刚解除对log4cxx的依赖不久。
计划继续多了解protocol buffers,然后决定是否使用。
分类:
C/C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义