rpc

poemyang1 小时前
rpc·json·protobuf
从JSON到Protobuf,深入序列化方案的选型与原理序列化:数据跨越边界的翻译官 序列化(Serialization)用于描述RPC服务接口和数据结构。在RPC通信中,客户端和服务器之间传输的数据通常是结构化的,如调用方法、请求参数、返回值等。这些结构化数据需要通过序列化过程转换为二进制流,以便在网络中进行传输。 目前,常见的跨语言序列化编码方式包括XML、JSON和Protobuf。尽管XML曾经广泛使用,但现在已经逐渐被淘汰。JSON目前正处于其使用高峰,而Protobuf则是一种新兴并且正在快速发展的序列化方式。值得一提的是,gRPC默认选择使用Pr
程序员鱼皮2 小时前
后端·rpc·程序员
在国企干了 5 年 Java,居然不知道 RPC?这正常吗?在国企干了 5 年 Java,居然不知道 RPC 是什么?这正常吗?这很正常。如果你没接触过分布式微服务项目,基本是接触不到 RPC 这玩意的,并不是个人能力的问题。
tan77º2 小时前
linux·服务器·网络·分布式·网络协议·rpc·json
【项目】分布式Json-RPC框架 - 应用层实现目录RPC远程调用RPC功能实现服务端的RpcRoute模块客户端的Requestor模块客户端RpcCaller模块
poemyang1 天前
分布式·网络协议·rpc·高并发
gRPC不是银弹:为内网极致性能,如何设计自己的RPC协议?自研RPC协议:为性能而生的赛道利器 尽管gRPC凭借其标准化、跨语言和基于HTTP/2的强大特性,在公网和云原生环境中大放异彩,但在某些特定的内网环境中,对性能、延迟和资源占用的要求可能更为苛刻。HTTP/2虽然高效,但其帧结构和头部处理机制相较于专为内网设计的极简协议,仍可能引入不必要的开销。 相比之下,内网环境的网络特性包括更短的请求链路、更低的丢包率和更可靠的硬件环境。在实际生产环境中,公网环境通常会通过nginx等反向代理服务进行优化。经过反向代理后,服务间的请求链路实际上已经转移到了内网环境。
milanyangbo2 天前
网络协议·http·云原生·rpc
站在巨人的肩膀上:gRPC通过HTTP/2构建云原生时代的通信标准gRPC:云原生时代的通信标准 gRPC将HTTP/2作为其传输层,并在此基础上定义了自身的通信语义。gRPC支持四种服务方法类型,它们都映射到HTTP/2的流模型上。 1)Unary RPC: 客户端发送单个请求,服务器返回单个响应(类似传统请求-响应)。 2)Server Streaming RPC: 客户端发送单个请求,服务器返回一个消息序列(流)。 3)Client Streaming RPC: 客户端发送一个消息序列(流),服务器返回单个响应。 4)Bidirectional Streaming
上等猿2 天前
笔记·rpc
RPC个人笔记(包含动态代理)RPC‎(Remote Procedu⁢re Call)即远程过程调用‍,是一种计算机通信协议,它允许؜程序在不同的计算机之间进行通信和交互,就像本地调用一样。
Gavin在路上2 天前
网络·网络协议·rpc
技术框架之RPC在单体应用时代,函数调用是进程内的简单操作。但随着业务规模扩大,系统被拆分为多个独立服务(如订单服务、支付服务),服务间通信成为刚需。早期开发者常使用HTTP+JSON手动实现通信,但这带来了显著问题:网络细节侵入业务代码(如处理超时、重试)、性能开销大(文本解析慢)、类型安全缺失(JSON弱类型易出错)。RPC框架应运而生——它通过抽象化远程调用,将开发者从底层网络编程中解放出来。
poemyang3 天前
网络协议·云原生·rpc·grpc·http2.0
站在巨人的肩膀上:gRPC通过HTTP/2构建云原生时代的通信标准gRPC:云原生时代的通信标准 gRPC将HTTP/2作为其传输层,并在此基础上定义了自身的通信语义。gRPC支持四种服务方法类型,它们都映射到HTTP/2的流模型上。 1)Unary RPC: 客户端发送单个请求,服务器返回单个响应(类似传统请求-响应)。 2)Server Streaming RPC: 客户端发送单个请求,服务器返回一个消息序列(流)。 3)Client Streaming RPC: 客户端发送一个消息序列(流),服务器返回单个响应。 4)Bidirectional Streaming
poemyang6 天前
网络协议·rpc·http2.0
从HPACK到多路复用,揭秘HTTP/2如何终结网络拥堵头部压缩 (HPACK) 在HTTP/1中,每个请求和响应都会发送大量重复的头部信息,比如 Cookie、User Agent、Accept 等,会使得大量带宽被这些冗余的数据占用。为了解决这个问题,HTTP/2引入了HPACK算法来压缩头部信息。HPACK算法有两个主要的特性。 1)静态表(Static Table)和动态表():用来存储头部字段。静态表包含了61 种常见的头部字段,如":method"、":path"等。动态表则是在会话过程中动态更新,它存储了最近使用的头部字段。同时HPACK会建立一
lidashent7 天前
java·c语言·rpc
c语言-内存管理提问一个问题 函数内部对一个变量 使用 static 关键字和不使用 static究竟有什么区别?c语言的内存管理究竟是什么? 答案如下: 实际上,生命周期,初始化次数,以及多次调用值是否保留的原因都是因为变量分布的位置不同而产生了这些差别 那么接下来就深入分析一下栈和数据段中的数据,在内存中究竟是如何来产生这些不同的。
MonkeyKing_sunyuhua7 天前
qt·rpc·json
什么是JSON-RPC 2.0,在项目中应该怎么使用它是什么JSON-RPC 2.0 是一种超轻量、与传输无关的远程调用协议:用 JSON 表达“方法名 + 参数 → 结果/错误”。可跑在 HTTP、WebSocket、Unix 管道,甚至 stdio 上(很多开发协议如 LSP 就用它)。
tan77º7 天前
linux·服务器·c++·分布式·tcp/ip·rpc·json
【项目】分布式Json-RPC框架 - 抽象层与具象层实现目录常用零碎功能接口实现日志宏的实现Json序列化与反序列化UUID项目消息类型字段定义请求、响应正文字段宏定义
猿饵块7 天前
开发语言·c++·rpc
stl--std::map模板类红黑树存储键值对,红黑树的key就是传递的key,value是pair对象。注意一些函数的参数,比如find函数:利用key寻找值,返回迭代器,而不是利用值寻找值。
poemyang8 天前
网络协议·rpc·http2.0
从文本到二进制:HTTP/2不止于性能,更是对HTTP/1核心语义的传承与革新云原生计算基金会(Cloud Native Computing Foundation,CNCF)是一个非盈利的开源组织,专注于推动云原生计算的发展和标准化。而gRPC(Google Remote Procedure Call)是由Google发起并开源的高性能、跨语言RPC框架。2017年,Google将gRPC项目捐赠给了CNCF,使其成为云原生生态的核心组件之一。gRPC与Kubernetes(容器编排)、Prometheus(监控)、Istio(服务网格)等CNCF项目深度集成,广泛应用于微服务架构
poemyang8 天前
网络协议·rpc·序列化
RPC的三大问题:跨语言、跨平台通信的终极解决方案是如何炼成的?服务间通信的效率与可靠性是系统性能和稳定性的关键。远程过程调用(RPC)作为跨进程、跨机器交互的核心机制,其传输协议的设计至关重要。一个优秀的RPC传输协议需要应对三大挑战:1)跨语言、跨平台的数据表示与解析;2)保障网络传输的完整性、顺序性与效率;3)在服务间建立清晰统一的调用约定。 本文将从 HTTP/2 的多路复用机制、gRPC 的标准化实践、自研RPC协议的架构设计,以及ProtoBuf的高效编解码技术四个方面,深入探讨现代RPC体系如何实现高效可靠的通信,并分析在公网生态与内网性能之间的双重需求
Kookoos10 天前
网络协议·rpc·.net·零拷贝·二进制协议·pipelines
System.IO.Pipelines 与“零拷贝”:在 .NET 打造高吞吐二进制 RPC大端(网络序)固定头 8 字节:src/Rpc.Protocol/Frame.cs要点src/Rpc.TcpServer/Program.cs
tan77º11 天前
linux·服务器·网络·分布式·网络协议·rpc·json
【Linux网络编程】分布式Json-RPC框架 - 项目设计目录理解项目功能模块划分服务端NetworkProtocolDispatcherRpcRoutePublish-Subscribe
张醒言15 天前
后端·rpc·protobuf
Protocol Buffers 中 optional 关键字的发展史optional 关键字在 Protocol Buffers (ProtoBuf) 中的演变历程,深刻地反映了其设计哲学从“显式严格”向“简洁高效”演进,最终又回归“务实灵活”的实践过程。这是一次经典的、由社区需求驱动的技术演进。
tan77º16 天前
linux·网络·分布式·网络协议·tcp/ip·rpc·json
【项目】分布式Json-RPC框架 - 项目介绍与前置知识准备目录项目介绍技术选型前置知识准备JsonCppJson数据格式JsonCpp库介绍Json序列化实践Json反序列化实践
fqbqrr17 天前
c++·rpc
2508C++,支持rdma通信的高性能rpc库原文yalantinglibs的coro_rpc是基于C++20的协程的高性能的rpc库,提供了简洁易用的接口,让用户几行代码就可实现rpc通信,现在coro_rpc除了支持tcp通信之外还支持了rdma通信(ibverbs). 通过简单示例来感受一下rdma通信的coro_rpc.