# RPC 漫谈：序列化问题

DevFeed: [RPC 漫谈：序列化问题](<https://devfeed.tech/articles/rpc-40977.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/deep-into-rpc-serialization/>)

Author: Joway

Published: 2021-04-30T00:00:00Z

Content type: tutorial

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [Code](<https://devfeed.tech/topics/code.md>), [interface](<https://devfeed.tech/topics/interface.md>), [class](<https://devfeed.tech/topics/class.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [client](<https://devfeed.tech/tags/client.md>), [code](<https://devfeed.tech/tags/code.md>), [interface](<https://devfeed.tech/tags/interface.md>), [java](<https://devfeed.tech/tags/java.md>), [protobuf](<https://devfeed.tech/tags/protobuf.md>), [remote-procedure-calls](<https://devfeed.tech/tags/remote-procedure-calls.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [service-mesh](<https://devfeed.tech/tags/service-mesh.md>), [tech](<https://devfeed.tech/tags/tech.md>)

## AI overview

This article explains RPC serialization and deserialization, including IDL definitions, generated Stub code, reflection, and encoding techniques such as Varint and ZigZag. It discusses trade-offs between generated code size, convenience, performance, and network payload size.

## Source excerpt

何为序列 对于计算机而言，一切数据皆为二进制序列。但编程人员为了以人类可读可控的形式处理这些二进制数据，于是发明了数据类型和结构的概念，数据类型用以标注一段二进制数据的解析方式，数据结构用以标注多段(连续/不连续)二进制数据的组织方式。 例如以下程序结构体：