微服务架构之RPC-client序列化细节

本文探讨了微服务架构中RPC客户端的序列化反序列化过程,包括为何进行序列化、如何序列化以及序列化协议要考虑的因素。提到了xml/json、自定义二进制协议等常见序列化方式,并推荐了protobuf作为优秀选择。下文将继续讨论RPC客户端的发送与接收字节流相关技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章聊了【“为什么要进行服务化,服务化究竟解决什么问题”

第二章聊了【“微服务的服务粒度选型”

上一篇聊了【“为什么说要搞定微服务架构,先搞定RPC框架?”

通过上篇文章的介绍,知道了要实施微服务,首先要搞定RPC框架,RPC框架的职责要向【调用方】和【服务提供方】屏蔽各种复杂性:

(1)让调用方感觉就像调用本地函数一样

(2)让服务提供方感觉就像实现一个本地函数一样来实现服务

整个RPC框架又分为client部分与server部分:


RPC-client的部分流程如上图,要进行序列化反序列化(上图中的1、4),要进行发送字节流与接收字节流(上图中的2、3)。

通过上一篇文章的用户调研:

78%读者 -> 继续聊RPC框架技术细节

14%读者 -> 聊微服务其他实践

7%读者 -> 不聊微服务了,聊最终一致性

那么按照多数读者的意见,今天深入聊RPC的技术细节,本文先讨论RPC-client部分的【序列化反序列化】实施细节(笔者不是这方面的专家,有不对之处,欢迎大家指正,任何具有建设性意见的留言,将在下一章share给更多的小伙伴)。

 

一、为什么要进行序列化

工程师通常使用“对象”来进行数据的操纵:

class User{

         std::Stringuser_name;

         uint64_tuser_id;

         uint32_tuser_age;

};

 

User u = new User(“s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值