草庐IT

RPC和GRPC

全部标签

《RPC实战与核心原理》学习笔记Day14

19|分布式环境下如何快速定位问题?分布式环境下定位问题有什么难点?分布式环境下定位问题的难点在于,各子应用、子服务之间有复杂的依赖关系,我们有时很难确定是哪个服务的哪个环节出现的问题。如果要通过日志来排查问题,就需要对每个子应用、子服务逐一进行排查,很难一步到位。在分布式环境下如何快速定位问题?有两种方式:借助合理封装的异常信息借助分布式链路跟踪RPC框架打印的异常信息中,需要包含定位问题所需要的异常信息的,比如哪些异常引起的问题(如序列化问题或网络超时问题),是调用端还是服务端出现的异常,调用端与服务端的IP是多少,以及服务接口与服务分组是什么等等。异常的示意图如下所示。一款优秀的RPC框

《RPC实战与核心原理》学习笔记Day14

19|分布式环境下如何快速定位问题?分布式环境下定位问题有什么难点?分布式环境下定位问题的难点在于,各子应用、子服务之间有复杂的依赖关系,我们有时很难确定是哪个服务的哪个环节出现的问题。如果要通过日志来排查问题,就需要对每个子应用、子服务逐一进行排查,很难一步到位。在分布式环境下如何快速定位问题?有两种方式:借助合理封装的异常信息借助分布式链路跟踪RPC框架打印的异常信息中,需要包含定位问题所需要的异常信息的,比如哪些异常引起的问题(如序列化问题或网络超时问题),是调用端还是服务端出现的异常,调用端与服务端的IP是多少,以及服务接口与服务分组是什么等等。异常的示意图如下所示。一款优秀的RPC框

Rpc-实现Zookeeper注册中心

1.前言本文章是笔主在声哥的手写RPC框架的学习下,对注册中心的一个拓展。因为声哥某些部分没有保留拓展性,所以本文章的项目与声哥的工程有部分区别,核心内容在Curator的注册发现与注销,思想看准即可。本文章Git仓库:zko0/zko0-rpc声哥的RPC项目写的确实很详细,跟学一遍受益匪浅:何人听我楚狂声的博客在声哥的项目里使用Nacos作为了服务注册中心。本人拓展添加了ZooKeeper实现服务注册。Nacos的服务注册和发现,设计的不是非常好,每次服务的发现都需要去注册中心拉取。本人实现ZooKeeper注册中心时,参考了Dubbo的设计原理,结合本人自身想法,添加了本地缓存:Clie

Rpc-实现Zookeeper注册中心

1.前言本文章是笔主在声哥的手写RPC框架的学习下,对注册中心的一个拓展。因为声哥某些部分没有保留拓展性,所以本文章的项目与声哥的工程有部分区别,核心内容在Curator的注册发现与注销,思想看准即可。本文章Git仓库:zko0/zko0-rpc声哥的RPC项目写的确实很详细,跟学一遍受益匪浅:何人听我楚狂声的博客在声哥的项目里使用Nacos作为了服务注册中心。本人拓展添加了ZooKeeper实现服务注册。Nacos的服务注册和发现,设计的不是非常好,每次服务的发现都需要去注册中心拉取。本人实现ZooKeeper注册中心时,参考了Dubbo的设计原理,结合本人自身想法,添加了本地缓存:Clie

【微服务】Nacos为什么丢弃短连接(http)而选择拥抱长连接(gRPC)

目录一、现状背景二、场景分析1、配置2、服务三、长连接核心诉求1、功能性诉求1.1、客户端1.2、服务端2、性能3、负载均衡4、连接生命周期4.1、心跳保活机制4.2、需要什么四、长连接选型对比五、基于长链接的⼀致性模型1.、配置⼀致性模型1.1、server间⼀致性2、服务⼀致性模型2.1、sdk-server间⼀致性2.2、server间⼀致性💖微服务实战💖 Spring家族及微服务系列文章 一、现状背景Nacos1.x版本Config/Naming模块各自的推送通道都是按照自己的设计模型来实现的。产品推送模型数据一致性痛点说明NacosConfig异步Servlet基于MD5比对⼀致性h

【微服务】Nacos为什么丢弃短连接(http)而选择拥抱长连接(gRPC)

目录一、现状背景二、场景分析1、配置2、服务三、长连接核心诉求1、功能性诉求1.1、客户端1.2、服务端2、性能3、负载均衡4、连接生命周期4.1、心跳保活机制4.2、需要什么四、长连接选型对比五、基于长链接的⼀致性模型1.、配置⼀致性模型1.1、server间⼀致性2、服务⼀致性模型2.1、sdk-server间⼀致性2.2、server间⼀致性💖微服务实战💖 Spring家族及微服务系列文章 一、现状背景Nacos1.x版本Config/Naming模块各自的推送通道都是按照自己的设计模型来实现的。产品推送模型数据一致性痛点说明NacosConfig异步Servlet基于MD5比对⼀致性h

什么是RPC框架?

什么是RPC?Indistributedcomputing,aremoteprocedurecall(RPC)iswhenacomputerprogramcausesaprocedure(subroutine)toexecuteinadifferentaddressspace(commonlyonanothercomputeronasharednetwork),whichiscodedasifitwereanormal(local)procedurecall,withouttheprogrammerexplicitlycodingthedetailsfortheremoteinteractio

什么是RPC框架?

什么是RPC?Indistributedcomputing,aremoteprocedurecall(RPC)iswhenacomputerprogramcausesaprocedure(subroutine)toexecuteinadifferentaddressspace(commonlyonanothercomputeronasharednetwork),whichiscodedasifitwereanormal(local)procedurecall,withouttheprogrammerexplicitlycodingthedetailsfortheremoteinteractio

HTTP和RPC的区别

HTTP接口和RPC接口都是生产上常用的接口,顾名思义,HTTP接口使用基于HTTP协议的URL传参调用,而RPC接口则基于远程过程调用。RPC(即RemoteProcedureCall,远程过程调用)和HTTP(HyperTextTransferProtocol,超文本传输协议),两者前者是一种方法,后者则是一种协议。两者都常用于实现服务,在这个层面最本质的区别是RPC服务主要工作在TCP协议之上(也可以在HTTP协议),而HTTP服务工作在HTTP协议之上。由于HTTP协议基于TCP协议,所以RPC服务天然比HTTP更轻量,效率更胜一筹。两者都是基于网络实现的,从这一点上,都是基于Clie

HTTP和RPC的区别

HTTP接口和RPC接口都是生产上常用的接口,顾名思义,HTTP接口使用基于HTTP协议的URL传参调用,而RPC接口则基于远程过程调用。RPC(即RemoteProcedureCall,远程过程调用)和HTTP(HyperTextTransferProtocol,超文本传输协议),两者前者是一种方法,后者则是一种协议。两者都常用于实现服务,在这个层面最本质的区别是RPC服务主要工作在TCP协议之上(也可以在HTTP协议),而HTTP服务工作在HTTP协议之上。由于HTTP协议基于TCP协议,所以RPC服务天然比HTTP更轻量,效率更胜一筹。两者都是基于网络实现的,从这一点上,都是基于Clie